public void Deletar(TB_COM_PEDIDO pedido, ref int posicaoTransacao) { try { Conexao.Iniciar(ref posicaoTransacao); var existente = Conexao.BancoDados.TB_COM_PEDIDOs.FirstOrDefault(a => a.ID_PEDIDO == pedido.ID_PEDIDO); if (existente != null) { existente.ST_ATIVO = false; } Conexao.Enviar(); Conexao.Finalizar(ref posicaoTransacao); } catch (Exception excessao) { Conexao.Voltar(ref posicaoTransacao); throw excessao; } }
public void Gravar(MPedido pedido, bool gerarNotaFiscal, ref int posicaoTransacao, List <MPedidoItem> transferencia = null) { try { Conexao.Iniciar(ref posicaoTransacao); if (transferencia != null) { for (int i = 0; i < transferencia.Count; i++) { DeletarItemParaTransferir(transferencia[i], ref posicaoTransacao); } } var existente = Conexao.BancoDados.TB_COM_PEDIDOs.FirstOrDefault(a => a.ID_PEDIDO == pedido.ID_PEDIDO); #region Inserção if (existente == null) { pedido.ID_PEDIDO = (Conexao.BancoDados.TB_COM_PEDIDOs.Any() ? Conexao.BancoDados.TB_COM_PEDIDOs.Max(a => a.ID_PEDIDO) : 0) + 1; var vPedido = new TB_COM_PEDIDO(); vPedido.ID_PEDIDO = pedido.ID_PEDIDO; vPedido.ID_PEDIDO_ORIGEM = pedido.ID_PEDIDO_ORIGEM == 0 ? null : pedido.ID_PEDIDO_ORIGEM; vPedido.ID_EMPRESA = pedido.ID_EMPRESA; vPedido.ID_USUARIO = pedido.ID_USUARIO; vPedido.ID_CLIFOR = pedido.ID_CLIFOR; vPedido.ST_PEDIDO = pedido.ST_PEDIDO; vPedido.ST_ATIVO = pedido.ST_ATIVO; vPedido.DT_CADASTRO = Conexao.DataHora; vPedido.TP_MOVIMENTO = pedido.TP_MOVIMENTO; Conexao.BancoDados.TB_COM_PEDIDOs.InsertOnSubmit(vPedido); Conexao.Enviar(); } #endregion #region Atualização else { existente.ID_EMPRESA = pedido.ID_EMPRESA; existente.ID_CLIFOR = pedido.ID_CLIFOR; existente.ST_ATIVO = pedido.ST_ATIVO; existente.ID_PEDIDO_ORIGEM = pedido.ID_PEDIDO_ORIGEM == 0 ? null : pedido.ID_PEDIDO_ORIGEM; existente.ST_PEDIDO = pedido.ST_PEDIDO; existente.TP_MOVIMENTO = pedido.TP_MOVIMENTO; Conexao.Enviar(); } ID_PEDIDO = pedido.ID_PEDIDO; for (int i = 0; i < pedido.Itens.Count; i++) { GravaPedidoItem(pedido, pedido.Itens[i]); } if (gerarNotaFiscal) { //GRAVA NOTA FISCAL var nota = new TB_FAT_NOTA(); nota.ID_CLIFOR = pedido.ID_CLIFOR; nota.ID_EMPRESA = pedido.ID_EMPRESA; nota.ID_USUARIO = pedido.ID_USUARIO; nota.TP_MOVIMENTO = pedido.TP_MOVIMENTO; nota.DT_ENTRADASAIDA = pedido.DT_CADASTRO; nota.ID_NOTA_REFERENCIA = pedido.ID_PEDIDO; // Revisar nota.ID_CONFIGURACAO_FISCAL = 1; nota.ID_CONFIGURACAO_FINANCEIRO = 1; for (int i = 0; i < pedido.Itens.Count; i++) { nota.TB_FAT_NOTA_ITEMs.Add(new TB_FAT_NOTA_ITEM { ID_PRODUTO = pedido.Itens[i].ID_PRODUTO, QT = pedido.Itens[i].QUANTIDADE, VL_UNITARIO = pedido.Itens[i].VL_UNITARIO, VL_DESCONTO = pedido.Itens[i].VL_DESCONTO, ID_EMPRESA = pedido.ID_EMPRESA }); } var referencia = new QNota(); referencia.Gravar(nota, pedido.CONDICAO_PAGAMENTO, ref posicaoTransacao); ID_NOTA = referencia.ID_NOTA; } #endregion Conexao.Enviar(); Conexao.Finalizar(ref posicaoTransacao); } catch (Exception excessao) { Conexao.Voltar(ref posicaoTransacao); throw excessao; } }