示例#1
0
 private void AddInventoryItem(ItemMovimentoStockDTO dto)
 {
     try
     {
         ComandText = "stp_STOCK_INVENTORY_ITEM_ADICIONAR";
         AddParameter("INVENTORY_ID", dto.Movimento);
         AddParameter("PRODUCT_ID", dto.ArtigoID);
         AddParameter("EXISTENCIA", dto.Existencia);
         AddParameter("CONTAGEM", dto.ContagemFisica);
         AddParameter("ACERTO", dto.Acrto);
         AddParameter("@LOTE_ID", dto.LoteID <= 0 ? (object)DBNull.Value : dto.LoteID);
         AddParameter("@SIZE_ID", dto.DimensaoID <= 0 ? (object)DBNull.Value : dto.DimensaoID);
         AddParameter("@SERIAL_ID", dto.SerialNumberID <= 0 ? (object)DBNull.Value : dto.SerialNumberID);
         AddParameter("PRECO_CUSTO", dto.PrecoCusto);
         AddParameter("PRECO_VENDA", dto.PrecoVenda);
         ExecuteNonQuery();
     }
     catch (Exception ex)
     {
         dto.MensagemErro = ex.Message.Replace("'", string.Empty);
     }
     finally
     {
         FecharConexao();
     }
 }
示例#2
0
        public void AddStockInicial(ItemMovimentoStockDTO dto)
        {
            try
            {
                ComandText = "stp_COM_ARTIGO_ADICIONAR_STOCK_INICIAL";

                AddParameter("QUANTIDADE", dto.Existencia);
                AddParameter("WAREHOUSE_ID", dto.Armazem);
                AddParameter("PRODUCT_ID", dto.ArtigoID);
                AddParameter("BARCODE", dto.BarCode);
                AddParameter("UTILIZADOR", dto.Utilizador);
                AddParameter("MOVIMENT_ID", dto.Movimento);
                AddParameter("UNIDADE_ID", dto.Unidade);
                AddParameter("VALIDADE", dto.LookupDate1 == DateTime.MinValue ? (object)DBNull.Value : dto.LookupDate1);
                AddParameter("PRECO_COMPRA", dto.PrecoCompra);
                AddParameter("PRECO_VENDA", dto.PrecoVenda);
                AddParameter("DATA_SI", dto.LookupDate10); // Data de Lançamento do Stock Inicial

                ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                dto.MensagemErro = ex.Message.Replace("'", string.Empty);
            }
            finally
            {
                FecharConexao();
            }
        }
示例#3
0
        public Tuple <bool, string> GetInCounting(ItemMovimentoStockDTO dto)
        {
            try
            {
                ComandText = "stp_STOCK_INVENTORY_OBTERPRODUCT_INCOUNTING";

                AddParameter("@PRODUCT_ID", dto.ArtigoID);

                MySqlDataReader dr = ExecuteReader();

                if (dr.Read())
                {
                    if (int.Parse(dr[9].ToString()) == dto.ArtigoID && dr[7].ToString() == "C")
                    {
                        dto = new ItemMovimentoStockDTO {
                            Sucesso = true, MensagemErro = dr[12].ToString() + " consta de uma contagem anterior que não está finalizada"
                        };
                    }
                }
            }
            catch (Exception ex)
            {
                dto = new ItemMovimentoStockDTO();
                dto.MensagemErro = ex.Message.Replace("'", string.Empty);
            }
            finally
            {
                FecharConexao();
            }

            return(new Tuple <bool, string>(dto.Sucesso, dto.MensagemErro));
        }
示例#4
0
        public void GravarItens(List <AtendimentoItemDTO> pItemList, int pStockWareHouseID)
        {
            List <ItemMovimentoStockDTO> StockProductsList = new List <ItemMovimentoStockDTO>();


            foreach (var item in pItemList)
            {
                var orderItem = dao.AdicionarItem(item);
                if (orderItem.Sucesso && item.MoveStock && (!item.Saved || (item.Saved && item.Deleted)))
                {
                    var ExitenciaInicial          = new StockDAO().StockActual(item.Artigo, pStockWareHouseID);
                    ItemMovimentoStockDTO product = new ItemMovimentoStockDTO
                    {
                        ArtigoID       = item.Artigo,
                        Designacao     = item.Designacao,
                        Existencia     = ExitenciaInicial,
                        PrecoUnitario  = item.Preco,
                        TotalLiquido   = item.Preco * item.Quantidade,
                        Quantidade     = !item.Deleted ? -item.Quantidade : item.Quantidade,
                        ValorTotal     = (ExitenciaInicial - item.Quantidade) * item.Preco,
                        Operacao       = 2,
                        ArmazemOrigem  = pStockWareHouseID,
                        AramzemDestino = pStockWareHouseID
                    };
                    StockProductsList.Add(product);
                }
            }
            AbateStock(StockProductsList);
        }
示例#5
0
        public List <ItemMovimentoStockDTO> GetInventoryProductList(ItemMovimentoStockDTO _artigo)
        {
            List <ItemMovimentoStockDTO> lista = new List <ItemMovimentoStockDTO>();

            try
            {
                ComandText = "stp_STOCK_INVENTORY_OBTERPRODUCTS";

                AddParameter("@INVENTORY_ID", _artigo.Movimento);

                MySqlDataReader dr = ExecuteReader();

                while (dr.Read())
                {
                    _artigo                 = new ItemMovimentoStockDTO();
                    _artigo.Movimento       = int.Parse(dr[0].ToString());
                    _artigo.Armazem         = dr[1].ToString();
                    _artigo.LookupDate1     = DateTime.Parse(dr[2].ToString());
                    _artigo.TituloDocumento = dr[3].ToString();
                    _artigo.LookupDate2     = DateTime.Parse(dr[4].ToString());
                    _artigo.FuncionarioID   = dr[5].ToString();
                    _artigo.SocialName      = dr[6].ToString();
                    _artigo.Situacao        = dr[7].ToString(); //GetStatusDescription(dr[7].ToString());
                    _artigo.LookupDate3     = DateTime.Parse(dr[8].ToString());
                    _artigo.ArtigoID        = int.Parse(dr[9].ToString());
                    _artigo.BarCode         = dr[10].ToString();
                    _artigo.Referencia      = dr[11].ToString();
                    _artigo.Designacao      = dr[12].ToString();
                    _artigo.Classificacao   = dr[13].ToString();
                    _artigo.Quantidade      = Convert.ToDecimal(dr[14].ToString());
                    _artigo.PrecoCusto      = Convert.ToDecimal(dr[15].ToString());
                    _artigo.PrecoVenda      = Convert.ToDecimal(dr[16].ToString());
                    _artigo.FotoArtigo      = dr[18].ToString();
                    _artigo.Existencia      = _artigo.Quantidade;
                    _artigo.ContagemFisica  = decimal.Parse(dr[19].ToString());
                    _artigo.Acrto           = decimal.Parse(dr[20].ToString());
                    _artigo.Unidade         = dr[21].ToString();
                    _artigo.LoteID          = int.Parse(dr[22].ToString());
                    _artigo.DimensaoID      = int.Parse(dr[23].ToString());
                    _artigo.SerialNumberID  = int.Parse(dr[24].ToString());
                    _artigo.Designacao      = dr[25].ToString() != "" ? (_artigo.Designacao + "-" + dr[25].ToString()) : _artigo.Designacao;
                    _artigo.Designacao      = dr[26].ToString() != "" ? (_artigo.Designacao + "-" + dr[26].ToString()) : _artigo.Designacao;
                    _artigo.Designacao      = dr[27].ToString() != "" ? (_artigo.Designacao + "-" + dr[27].ToString()) : _artigo.Designacao;
                    lista.Add(_artigo);
                }
            }
            catch (Exception ex)
            {
                _artigo = new ItemMovimentoStockDTO();
                _artigo.MensagemErro = ex.Message.Replace("'", string.Empty);
            }
            finally
            {
                FecharConexao();
            }

            return(lista);
        }
示例#6
0
        public List <ItemMovimentoStockDTO> ObterItemsList(ItemMovimentoStockDTO dto)
        {
            List <ItemMovimentoStockDTO> lista = new List <ItemMovimentoStockDTO>();

            try
            {
                ComandText = "stp_STOCK_MOVIMENTO_DIRECTO_ARTIGOS_OBTERPORFILTRO";

                AddParameter("MOVIMENT_ID", dto.Movimento);
                AddParameter("DATA_INI", dto.LookupDate1 == DateTime.MinValue ?(object)DBNull.Value : dto.LookupDate1);
                AddParameter("DATA_TERM", dto.LookupDate2 == DateTime.MinValue ? (object)DBNull.Value : dto.LookupDate2);

                MySqlDataReader dr = ExecuteReader();

                while (dr.Read())
                {
                    dto               = new ItemMovimentoStockDTO();
                    dto.ArtigoID      = int.Parse(dr[0].ToString());
                    dto.Referencia    = dr[1].ToString();
                    dto.Designacao    = dr[2].ToString();
                    dto.Quantidade    = decimal.Parse(dr[3].ToString());
                    dto.Unidade       = dr[4].ToString();
                    dto.Armazem       = dr[5].ToString();
                    dto.LookupField1  = dr[6].ToString(); // Armazem de Destino
                    dto.LookupField2  = dr[7].ToString(); // Lote
                    dto.PrecoUnitario = decimal.Parse(dr[8].ToString());
                    if (dto.PrecoUnitario <= 0)
                    {
                        dto.PrecoUnitario = decimal.Parse(dr[9].ToString());
                    }

                    dto.ValorTotal = dto.Quantidade * dto.PrecoUnitario;

                    dto.ValorTotal = dto.ValorTotal < 0 ? dto.ValorTotal * (-1) : dto.ValorTotal;

                    dto.TituloDocumento = dr[10].ToString();
                    dto.Status          = dr[12].ToString() == "0" ? 0 : 1;
                    dto.CreatedDate     = DateTime.Parse(dr[11].ToString());
                    lista.Add(dto);
                }
            }
            catch (Exception ex)
            {
                dto.Sucesso      = false;
                dto.MensagemErro = ex.Message.Replace("'", string.Empty);
            }
            finally
            {
                FecharConexao();
            }
            return(lista);
        }
示例#7
0
        public void AcertoAutomaticoStock(ArtigoDTO produto)
        {
            ItemMovimentoStockDTO dto = new ItemMovimentoStockDTO();

            dto.Filial      = "-1";
            dto.LookupDate1 = DateTime.MinValue;
            dto.LookupDate2 = DateTime.MinValue;
            dto.ArtigoID    = produto.Codigo;
            dto.Armazem     = produto.ArmazemID.ToString();

            foreach (var item in ProductExtractList(dto))
            {
                produto.Quantidade = item.TotalLiquido;
            }

            daoStock.ActualizaStock(produto);
        }
示例#8
0
        public ItemMovimentoStockDTO AdicionarArtigo(ItemMovimentoStockDTO dto)
        {
            try
            {
                ComandText = "stp_STOCK_MOVIMENTO_DIRECTO_ARTIGO_ADICIONAR";

                AddParameter("@MOVIMENTO", dto.Movimento);
                AddParameter("@ARTIGO", dto.ArtigoID);
                AddParameter("@DATA_MOVIMENTO", DateTime.Today);
                AddParameter("@EXISTENCIA", dto.Existencia);
                AddParameter("ARMAZEM_ORIGEM", dto.ArmazemOrigem);
                AddParameter("ARMAZEM_DESTINO", dto.AramzemDestino);
                AddParameter("@QUANTIDADE", dto.Quantidade);
                AddParameter("@QTD_FINAL", dto.Existencia < 0 && dto.Quantidade > 0 ? dto.Quantidade : dto.Existencia + dto.Quantidade);
                AddParameter("@PRECO_UNITARIO", dto.PrecoUnitario);
                AddParameter("@TIPO", dto.Operacao);
                AddParameter("@PRECO_CUSTO", dto.PrecoCompra);
                AddParameter("@VALOR_PVP", dto.Quantidade * dto.PrecoUnitario);
                AddParameter("@VALOR_PC", dto.Quantidade * dto.PrecoCompra);
                AddParameter("@UTILIZADOR", dto.Utilizador);
                AddParameter("@STATUS", dto.Status);
                AddParameter("@FILIAL", dto.Filial);
                AddParameter("@LOTE_ID", dto.LoteID <= 0 ? (object)DBNull.Value : dto.LoteID);
                AddParameter("@SERIAL_NUMBER_ID", dto.SerialNumberID <= 0 ? (object)DBNull.Value : dto.SerialNumberID);
                AddParameter("@COMPOSE_ID", dto.ComposeID <= 0 ? (object)DBNull.Value : dto.ComposeID);
                AddParameter("@SIZE_ID", dto.DimensaoID <= 0 ? (object)DBNull.Value : dto.DimensaoID);
                AddParameter("@DATA_CONTAGEM", dto.DataContagem == DateTime.MinValue ? (object)DBNull.Value : dto.DataContagem);

                ExecuteNonQuery();
                dto.Sucesso = true;
            }
            catch (Exception ex)
            {
                dto.MensagemErro = ex.Message.Replace("'", "");
                dto.Sucesso      = false;
            }
            finally
            {
                FecharConexao();
                if (dto.Sucesso && dto.HeightSize > 0 && dto.WidthSize > 0)
                {
                    AddProductSizes(dto);
                }
            }
            return(dto);
        }
示例#9
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);
        }
示例#10
0
 public ItemMovimentoStockDTO MovimentaArtigo(ItemMovimentoStockDTO dto)
 {
     try
     {
         ComandText = "stp_STOCK_MOVIMENTO_ARTIGO";
         AddParameter("@ARTIGO", dto.ArtigoID);
         AddParameter("@PRECO_CUSTO", dto.PrecoCompra);
         AddParameter("@PRECO_VENDA", dto.TotalLiquido);
         //AddParameter("@MARGEM_LUCRO", dto.MargemLucro);
         ExecuteNonQuery();
     }
     catch (Exception ex)
     {
         dto.MensagemErro += ex.Message.Replace("'", string.Empty);
     }
     finally
     {
         FecharConexao();
     }
     return(dto);
 }
示例#11
0
        private void AddProductSizes(ItemMovimentoStockDTO dto)
        {
            try
            {
                ComandText = "stp_STOCK_MOVIMENTOS_DIRECTOS_ARTIGOS_SIZES_ADICIONAR";

                AddParameter("@MOVIMENT_ID", dto.Movimento);
                AddParameter("@PRODUCT_ID", dto.ArtigoID);
                AddParameter("@HIGHT_SIZE", dto.HeightSize);
                AddParameter("@WIDTH_SIZE", dto.WidthSize);

                ExecuteNonQuery();
                dto.Sucesso = true;
            }
            catch (Exception ex)
            {
                dto.MensagemErro = ex.Message.Replace("'", "");
                dto.Sucesso      = false;
            }
            finally
            {
                FecharConexao();
            }
        }
示例#12
0
 public void AddStockInicial(ItemMovimentoStockDTO dto)
 {
     daoStock.AddStockInicial(dto);
 }
示例#13
0
 public List <ItemMovimentoStockDTO> GetStockProductExtractList(ItemMovimentoStockDTO dto)
 {
     return(dao.ObterItemsList(dto));
 }
示例#14
0
        public List <ItemMovimentoStockDTO> ObterProductExtract(ItemMovimentoStockDTO dto)
        {
            List <ItemMovimentoStockDTO> lista = new List <ItemMovimentoStockDTO>();

            try
            {
                ComandText = "stp_STOCK_EXTRATO_ARTIGO";


                AddParameter("@ARTIGO_ID", dto.ArtigoID);
                AddParameter("@DATA_INI", dto.LookupDate1 == DateTime.MinValue ? (object)DBNull.Value : dto.LookupDate1);
                AddParameter("@DATA_TERM", dto.LookupDate2 == DateTime.MinValue ? (object)DBNull.Value : dto.LookupDate2);
                AddParameter("@DOCUMENT_ID", dto.SerieID);
                AddParameter("@WAREHOUSE_ID", dto.Armazem);
                AddParameter("@FILIAL", dto.Filial);

                MySqlDataReader dr = ExecuteReader();

                decimal Saldo = 0;
                while (dr.Read())
                {
                    dto = new ItemMovimentoStockDTO
                    {
                        Movimento              = int.Parse(dr[0].ToString()),
                        ArtigoID               = int.Parse(dr[1].ToString()),
                        CreatedDate            = !string.IsNullOrEmpty(dr[2].ToString()) ? DateTime.Parse(dr[2].ToString()) : DateTime.MinValue,
                        WareHouseName          = dr[3].ToString(),
                        Designacao             = dr[4].ToString(),
                        Operacao               = int.Parse(dr[5].ToString()),
                        PrecoUnitario          = decimal.Parse(dr[6].ToString()),
                        Existencia             = decimal.Parse(dr[7].ToString()),
                        Quantidade             = decimal.Parse(dr[8].ToString()),
                        Referencia             = dr[9].ToString(),
                        PrecoCustoMedio_Actual = decimal.Parse(dr[10].ToString()),
                        Unidade          = dr[11].ToString(),
                        WarehouseFrom    = dr[13].ToString(),
                        WarehouseDestiny = dr[14].ToString(),
                        TransferID       = int.Parse(dr[15].ToString()),
                        Armazem          = dr[15].ToString(),
                    };
                    dto.Referencia = dr[12].ToString() + "(" + dto.Referencia + ")";

                    /*
                     * if(dto.TransferID > 0)
                     * {
                     *  if(lista.Exists(t => t.Operacao == dto.Operacao && t.TransferID == dto.TransferID))
                     *  {
                     *      var item = lista.Where(t => t.Operacao == dto.Operacao && t.TransferID == dto.TransferID).SingleOrDefault();
                     *      if (dto.Operacao == 1 && item.WareHouseName == dto.WarehouseDestiny ||
                     *          dto.Operacao == 0 && item.WareHouseName == dto.WarehouseFrom)
                     *      {
                     *          dto = null;
                     *      }
                     *  }
                     *  else if(dto.Operacao == 1 && dto.WareHouseName == dto.WarehouseDestiny ||
                     *          dto.Operacao == 0 && dto.WareHouseName == dto.WarehouseFrom)
                     *  {
                     *      dto = null;
                     *  }
                     * }*/


                    if (dto != null)
                    {
                        Saldo            = Saldo == 0 ? (dto.Existencia + dto.Quantidade) : Saldo + dto.Quantidade;
                        dto.TotalLiquido = Saldo;
                        lista.Add(dto);
                    }
                }
            }
            catch (Exception ex)
            {
                dto.MensagemErro = ex.Message.Replace("'", string.Empty);
            }
            finally
            {
                FecharConexao();
            }

            return(lista);
        }
示例#15
0
 public List <ItemMovimentoStockDTO> ProductExtractList(ItemMovimentoStockDTO dto)
 {
     return(daoStock.ObterProductExtract(dto));
 }
示例#16
0
 public Tuple <bool, string> CheckInCounting(ItemMovimentoStockDTO dto)
 {
     return(daoStock.GetInCounting(dto));
 }
示例#17
0
        public List <ItemMovimentoStockDTO> GetToInventory(StockInfoDTO dto)
        {
            List <ItemMovimentoStockDTO> lista = new List <ItemMovimentoStockDTO>();
            ItemMovimentoStockDTO        _artigo;

            try
            {
                ComandText = "stp_COM_STOCK_OBTERPORFILTRO";

                AddParameter("WAREHOUSE_ID", dto.ArmazemID);
                AddParameter("ARTIGO", dto.DesignacaoArtigo);
                AddParameter("@REFERENCIA", dto.Reference == null ? string.Empty : dto.Reference);
                AddParameter("@CODIGO_BARRAS", dto.BarCode == null ? string.Empty : dto.BarCode);
                AddParameter("FILIAL", dto.Filial);
                AddParameter("LOTE_ID", dto.Product.LoteID <= 0 ?(object)DBNull.Value : dto.Product.LoteID);
                AddParameter("DIMENSAO_ID", dto.Product.DimesaoID <= 0 ? (object)DBNull.Value : dto.Product.DimesaoID);
                AddParameter("SERIAL_ID", dto.Product.SerialNumberID <= 0 ? (object)DBNull.Value : dto.Product.SerialNumberID);
                AddParameter("SEMELHANTE_ID", dto.Product.SemelhanteID <= 0 ? (object)DBNull.Value : dto.Product.SemelhanteID);
                AddParameter("FAMILIA_ID", dto.Product.Categoria == "-1" ? (object)DBNull.Value : dto.Product.Categoria);
                AddParameter("UTILIZADOR", dto.Utilizador);

                MySqlDataReader dr = ExecuteReader();

                while (dr.Read())
                {
                    _artigo                = new ItemMovimentoStockDTO();
                    _artigo.ArtigoID       = int.Parse(dr[0].ToString());
                    _artigo.Referencia     = dr[1].ToString();
                    _artigo.Designacao     = dr[2].ToString();
                    _artigo.Classificacao  = dr[3].ToString();
                    _artigo.Quantidade     = Convert.ToDecimal(dr[4].ToString());
                    _artigo.PrecoCusto     = Convert.ToDecimal(dr[5].ToString());
                    _artigo.PrecoVenda     = Convert.ToDecimal(dr[6].ToString());
                    _artigo.Armazem        = dr[7].ToString();
                    _artigo.FotoArtigo     = dr[8].ToString();
                    _artigo.BarCode        = dr[9].ToString();
                    _artigo.Existencia     = _artigo.Quantidade;
                    _artigo.ContagemFisica = -1;
                    _artigo.Unidade        = dr[14].ToString();
                    _artigo.LoteID         = int.Parse(dr[10].ToString());
                    _artigo.DimensaoID     = int.Parse(dr[12].ToString());
                    _artigo.SerialNumberID = int.Parse(dr[15].ToString());
                    _artigo.Designacao     = dr[11].ToString() != "" ? (_artigo.Designacao + "-" + dr[11].ToString()) : _artigo.Designacao;
                    _artigo.Designacao     = dr[13].ToString() != "" ? (_artigo.Designacao + "-" + dr[13].ToString()) : _artigo.Designacao;
                    _artigo.Designacao     = dr[16].ToString() != "" ? (_artigo.Designacao + "-" + dr[16].ToString()) : _artigo.Designacao;

                    if (!GetInCounting(_artigo).Item1)
                    {
                        lista.Add(_artigo);
                    }
                }
            }
            catch (Exception ex)
            {
                _artigo = new ItemMovimentoStockDTO();
                _artigo.MensagemErro = ex.Message.Replace("'", string.Empty);
            }
            finally
            {
                FecharConexao();
            }

            return(lista);
        }
示例#18
0
 public List <ItemMovimentoStockDTO> GetInventoryProductListByReference(ItemMovimentoStockDTO dto)
 {
     return(daoStock.GetInventoryProductList(dto));
 }