Пример #1
0
        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;
            }
        }
Пример #2
0
        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;
            }
        }