/// <summary>
 /// Create a new ITEM_PEDIDO object.
 /// </summary>
 /// <param name="iD_ITEM_PEDIDO">Initial value of the ID_ITEM_PEDIDO property.</param>
 /// <param name="iD_PEDIDO">Initial value of the ID_PEDIDO property.</param>
 /// <param name="nUM_VALOR">Initial value of the NUM_VALOR property.</param>
 /// <param name="nUM_QUANTIDADE">Initial value of the NUM_QUANTIDADE property.</param>
 /// <param name="dATA_ATUALIZACAO">Initial value of the DATA_ATUALIZACAO property.</param>
 /// <param name="lOGIN_USUARIO">Initial value of the LOGIN_USUARIO property.</param>
 public static ITEM_PEDIDO CreateITEM_PEDIDO(global::System.Guid iD_ITEM_PEDIDO, global::System.Guid iD_PEDIDO, global::System.Decimal nUM_VALOR, global::System.Int32 nUM_QUANTIDADE, global::System.DateTime dATA_ATUALIZACAO, global::System.String lOGIN_USUARIO)
 {
     ITEM_PEDIDO iTEM_PEDIDO = new ITEM_PEDIDO();
     iTEM_PEDIDO.ID_ITEM_PEDIDO = iD_ITEM_PEDIDO;
     iTEM_PEDIDO.ID_PEDIDO = iD_PEDIDO;
     iTEM_PEDIDO.NUM_VALOR = nUM_VALOR;
     iTEM_PEDIDO.NUM_QUANTIDADE = nUM_QUANTIDADE;
     iTEM_PEDIDO.DATA_ATUALIZACAO = dATA_ATUALIZACAO;
     iTEM_PEDIDO.LOGIN_USUARIO = lOGIN_USUARIO;
     return iTEM_PEDIDO;
 }
 /// <summary>
 /// Deprecated Method for adding a new object to the T_ITEM_PEDIDO EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToT_ITEM_PEDIDO(ITEM_PEDIDO iTEM_PEDIDO)
 {
     base.AddObject("T_ITEM_PEDIDO", iTEM_PEDIDO);
 }
        /// <summary>
        /// Método para salvar os item do pedido
        /// </summary>
        /// <param name="ItemPedido">Objeto com os dados do item</param>
        /// <returns>Contrato.RetornoItem</returns>
        internal static Contrato.RetornoItemPedido SalvarItemPedidoPedido(Dados.PEDIDO Pedido, string UsuarioLogado, Contrato.ItemPedido ItemPedido)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoItemPedido retItemPedido = new Contrato.RetornoItemPedido();

            // Loga no banco de dados
            Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();

            // Cria o item
            Dados.ITEM_PEDIDO tItemPedido = new Dados.ITEM_PEDIDO()
            {
                ID_ITEM_PEDIDO = Guid.NewGuid(),
                ID_PEDIDO = Pedido.ID_PEDIDO,
                NUM_QUANTIDADE = ItemPedido.Quantidade,
                NUM_VALOR = ItemPedido.Valor,
                NUM_DESCONTO = ItemPedido.ValorDesconto,
                LOGIN_USUARIO = UsuarioLogado,
                DATA_ATUALIZACAO = DateTime.Now
            };

            if (ItemPedido.Produto != null)
            {
                tItemPedido.ID_PRODUTO = ItemPedido.Produto.Id;
                if (ItemPedido.UnidadeMedida != null)
                    tItemPedido.ID_UNIDADE_MEDIDA = ItemPedido.UnidadeMedida.Id;

                // Verifica se o pedido foi aprovado
                if (Pedido.T_ESTADO_PEDIDO != null && Pedido.T_ESTADO_PEDIDO.COD_ESTADO_PEDIDO == string.Format("0{0}", (int)Contrato.Enumeradores.EstadoPedido.Aprovado))
                {
                    // Atualiza a quantidade de produtos
                    if (ItemPedido.UnidadeMedida != null && ItemPedido.UnidadeMedida.Id != Guid.Empty)
                    {
                        Contrato.UnidadeMedida uMedida = ItemPedido.Produto.UnidadeMedidas.Where(um => um.Id == ItemPedido.UnidadeMedida.Id).FirstOrDefault();
                        if (uMedida != null)
                        {
                            uMedida.Quantidade = uMedida.Quantidade + ItemPedido.Quantidade;
                            context.T_PRODUTO.Where(p => p.ID_PRODUTO == ItemPedido.Produto.Id).FirstOrDefault().NUM_VALOR = ItemPedido.Valor / uMedida.QuantidadeItens;
                            context.T_PRODUTO_UNIDADE_MEDIDA.Where(pum => pum.ID_UNIDADE_MEDIDA == uMedida.Id && pum.ID_PRODUTO == ItemPedido.Produto.Id).FirstOrDefault().NUM_QUANTIDADE = uMedida.Quantidade;
                        }
                    }
                    else
                    {
                        ItemPedido.Produto.Quantidade = ItemPedido.Produto.Quantidade + ItemPedido.Quantidade;
                        Dados.PRODUTO objProduto = context.T_PRODUTO.Where(p => p.ID_PRODUTO == ItemPedido.Produto.Id).FirstOrDefault();
                        objProduto.NUM_QUANTIDADE = ItemPedido.Quantidade;
                        objProduto.NUM_VALOR = ItemPedido.Valor;
                    }
                }
            }

            Pedido.T_ITEM_PEDIDO.Add(tItemPedido);

            // Salva as alterações
            context.SaveChanges();

            // Preenche o objeto de retorno
            retItemPedido.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO;

            // retorna dos dados
            return retItemPedido;
        }