示例#1
0
        public void VerificaMesaSemItem()
        {
            var db = Conexao.BancoDados;

            var Pedido = BuscarView().Where(p => p.ST_PEDIDO == "O");

            for (int i = 0; i < Pedido.Count(); i++)
            {
                var item = (from a in db.TB_COM_PEDIDO_ITEMs
                            where a.ID_PEDIDO == Pedido.ToList()[i].ID_PEDIDO &&
                            (a.ST_ATIVO ?? false) == true
                            select a).ToList();


                if (item.Count == 0 || (Pedido.ToList()[i].ID_MESA == "0" && Pedido.ToList()[i].ID_CARTAO == "0"))
                {
                    int posicao_transacao = 0;
                    Pedido.ToList()[i].ST_ATIVO  = false;
                    Pedido.ToList()[i].ST_PEDIDO = "F";
                    MPedido vPedido = Pedido.ToList()[i];

                    vPedido.ST_PEDIDO = "F";
                    vPedido.ST_ATIVO  = false;

                    Gravar(vPedido, ref posicao_transacao);
                }
            }
        }
示例#2
0
        public void AtualizaPedidoItem(MPedido pedido, MPedidoItem item, int _pedidoOrigem, ref int posicaoTransacao)//muda o pedido original do item
        {
            Conexao.Iniciar(ref posicaoTransacao);

            var _item = Conexao.BancoDados.TB_COM_PEDIDO_ITEMs.FirstOrDefault(a => a.ID_PEDIDO == _pedidoOrigem && a.ID_ITEM == item.ID_ITEM);

            var novoItem = new MPedidoItem();

            novoItem.ID_PRODUTO   = _item.ID_PRODUTO ?? 0;
            novoItem.QUANTIDADE   = _item.QT ?? 0m;
            novoItem.VL_UNITARIO  = _item.VL_UNITARIO ?? 0m;
            novoItem.VL_ACRESCIMO = _item.VL_ACRESCIMO ?? 0m;
            novoItem.VL_DESCONTO  = _item.VL_DESCONTO ?? 0m;
            novoItem.VL_SUBTOTAL  = _item.VL_SUBTOTAL ?? 0m;
            novoItem.ST_ATIVO     = _item.ST_ATIVO;
            novoItem.ST_IMPRESSO  = _item.TB_GOU_PEDIDO_ITEM.ST_IMPRESSO;
            novoItem.OBS          = _item.DS_OBSERVACAO;

            var _adicionais = Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_ADICIONALs.Where(p => p.ID_ITEM == _item.ID_ITEM && p.ID_PEDIDO == _item.ID_PEDIDO && p.ID_EMPRESA == _item.ID_EMPRESA).ToList();

            for (int i = 0; i < _adicionais.Count; i++)
            {
                var novoAdicionais = new MAdicionais();
                novoAdicionais.ID_GRUPO      = _adicionais[i].ID_GRUPO;
                novoAdicionais.ID_ITEMPEDIDO = _adicionais[i].ID_ITEM;
                novoAdicionais.ID_ADICIONAL  = _adicionais[i].ID_ADICIONAL;
                novoItem.Adicionais.Add(novoAdicionais);
            }

            var _complementos = Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_COMPLEMENTOs.Where(p => p.ID_ITEM == _item.ID_ITEM && p.ID_PEDIDO == _item.ID_PEDIDO && p.ID_EMPRESA == _item.ID_EMPRESA).ToList();

            for (int i = 0; i < _complementos.Count; i++)
            {
                var novoComplementos = new MComplemento();
                novoComplementos.ID_ITEMPEDIDO = _complementos[i].ID_ITEM;
                novoComplementos.ID_PRODUTO    = _complementos[i].ID_PRODUTO;
                novoComplementos.QUANTIDADE    = _complementos[i].QT ?? 0m;
                novoComplementos.VALOR         = _complementos[i].VL ?? 0m;
                novoItem.COMPLEMENTOS.Add(novoComplementos);
            }
            new Comercial.QPedido().GravaPedidoItem(pedido, novoItem);

            GravaItemPedido(pedido, novoItem);

            var delItem = new MPedidoItem();

            delItem.ID_ITEM   = _item.ID_ITEM;
            delItem.ID_PEDIDO = _item.ID_PEDIDO;

            new Comercial.QPedido().DeletarItemParaTransferir(delItem, ref posicaoTransacao);

            Conexao.Finalizar(ref posicaoTransacao);
        }
示例#3
0
        public void Deletar(MPedido 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;
            }
        }
示例#4
0
        private void GravaItemPedido(MPedido pedido, MPedidoItem Itens)
        {
            var existenteItem = Conexao.BancoDados.TB_GOU_PEDIDO_ITEMs.FirstOrDefault(a => a.ID_PEDIDO == pedido.ID_PEDIDO && a.ID_ITEM == Itens.ID_ITEM);

            if (existenteItem == null)
            {
                Itens.ID_ITEM = (Conexao.BancoDados.TB_GOU_PEDIDO_ITEMs.Any() ? Conexao.BancoDados.TB_GOU_PEDIDO_ITEMs.Max(a => a.ID_ITEM) : 0) + 1;

                var vItens = new TB_GOU_PEDIDO_ITEM();
                vItens.ID_PEDIDO     = pedido.ID_PEDIDO;
                vItens.ID_EMPRESA    = pedido.ID_EMPRESA;
                vItens.ID_ITEM       = Itens.ID_ITEM;
                vItens.DS_OBSERVACAO = Itens.OBS;
                vItens.ST_IMPRESSO   = Itens.ST_IMPRESSO;

                Conexao.BancoDados.TB_GOU_PEDIDO_ITEMs.InsertOnSubmit(vItens);
                Conexao.Enviar();
            }
            else
            {
                existenteItem.ID_EMPRESA    = pedido.ID_EMPRESA;
                existenteItem.DS_OBSERVACAO = Itens.OBS;
                existenteItem.ST_IMPRESSO   = Itens.ST_IMPRESSO;

                Conexao.Enviar();
            }

            for (int y = 0; y < Itens.COMPLEMENTOS.Count; y++)
            {
                var existenteItemComplemento = Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_COMPLEMENTOs.FirstOrDefault(a => a.ID_PEDIDO == pedido.ID_PEDIDO && a.ID_ITEM == Itens.ID_ITEM && a.ID_COMPLEMENTO == Itens.COMPLEMENTOS[y].ID_COMPLEMENTO);

                if (existenteItemComplemento == null)
                {
                    Itens.COMPLEMENTOS[y].ID_COMPLEMENTO = (Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_COMPLEMENTOs.Any() ? Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_COMPLEMENTOs.Max(a => a.ID_COMPLEMENTO) : 0) + 1;

                    var vComplementos = new TB_GOU_PEDIDO_ITEM_COMPLEMENTO();
                    vComplementos.ID_COMPLEMENTO = Itens.COMPLEMENTOS[y].ID_COMPLEMENTO;
                    vComplementos.ID_EMPRESA     = pedido.ID_EMPRESA;
                    vComplementos.ID_PRODUTO     = Itens.COMPLEMENTOS[y].ID_PRODUTO;
                    vComplementos.ID_PEDIDO      = pedido.ID_PEDIDO;
                    vComplementos.ID_ITEM        = Itens.ID_ITEM;
                    vComplementos.QT             = Itens.COMPLEMENTOS[y].QUANTIDADE;
                    vComplementos.VL             = Itens.COMPLEMENTOS[y].VALOR;

                    Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_COMPLEMENTOs.InsertOnSubmit(vComplementos);
                    Conexao.Enviar();
                }
                else
                {
                    existenteItemComplemento.ID_EMPRESA = pedido.ID_EMPRESA;
                    existenteItemComplemento.ID_PRODUTO = Itens.COMPLEMENTOS[y].ID_PRODUTO;
                    existenteItemComplemento.QT         = Itens.COMPLEMENTOS[y].QUANTIDADE;
                    existenteItemComplemento.VL         = Itens.COMPLEMENTOS[y].VALOR;
                    Conexao.Enviar();
                }
            }

            for (int y = 0; y < Itens.Adicionais.Count; y++)
            {
                var existenteItemAdicional = Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_ADICIONALs.FirstOrDefault(a => a.ID_PEDIDO == pedido.ID_PEDIDO && a.ID_ITEM == Itens.ID_ITEM && a.ID_ADICIONAL == Itens.Adicionais[y].ID_ADICIONAL);

                if (existenteItemAdicional == null)
                {
                    Itens.Adicionais[y].ID_ITEMADICIONAL = (Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_ADICIONALs.Any() ? Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_ADICIONALs.Max(a => a.ID_ITEM_ADICIONAL) : 0) + 1;

                    var vAdicional = new TB_GOU_PEDIDO_ITEM_ADICIONAL();
                    vAdicional.ID_ITEM_ADICIONAL = Itens.Adicionais[y].ID_ITEMADICIONAL;
                    vAdicional.ID_PEDIDO         = pedido.ID_PEDIDO;
                    vAdicional.ID_EMPRESA        = pedido.ID_EMPRESA;
                    vAdicional.ID_ITEM           = Itens.ID_ITEM;
                    vAdicional.ID_ADICIONAL      = Itens.Adicionais[y].ID_ADICIONAL;
                    vAdicional.ID_GRUPO          = Itens.Adicionais[y].ID_GRUPO;

                    Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_ADICIONALs.InsertOnSubmit(vAdicional);
                    Conexao.Enviar();
                }
                else
                {
                    existenteItemAdicional.ID_EMPRESA   = pedido.ID_EMPRESA;
                    existenteItemAdicional.ID_ADICIONAL = Itens.Adicionais[y].ID_ADICIONAL;
                    existenteItemAdicional.ID_GRUPO     = Itens.Adicionais[y].ID_GRUPO;
                    Conexao.Enviar();
                }
            }
        }
示例#5
0
        public void Gravar(MPedido pedido, ref int posicaoTransacao, List <MPedidoItem> transferencia = null, bool GeraNotaFiscal = false)
        {
            try
            {
                Conexao.Iniciar(ref posicaoTransacao);

                // Grava primeiramente o pedido no comercial
                var pedidoComercial = new Comercial.QPedido();
                pedidoComercial.Gravar(pedido, GeraNotaFiscal, ref posicaoTransacao, transferencia);
                id_nota = pedidoComercial.ID_NOTA;

                var existente = Conexao.BancoDados.TB_GOU_PEDIDOs.FirstOrDefault(a => a.ID_PEDIDO == pedido.ID_PEDIDO);

                #region Inserção

                if (existente == null)
                {
                    pedido.ID_PEDIDO = (Conexao.BancoDados.TB_GOU_PEDIDOs.Any() ? Conexao.BancoDados.TB_GOU_PEDIDOs.Max(a => a.ID_PEDIDO) : 0) + 1;

                    var vPedido = new TB_GOU_PEDIDO();
                    vPedido.ID_EMPRESA = pedido.ID_EMPRESA;
                    vPedido.ID_PEDIDO  = pedido.ID_PEDIDO;
                    vPedido.ID_MESA    = pedido.ID_MESA;
                    vPedido.ID_CARTAO  = pedido.ID_CARTAO;
                    vPedido.ST         = pedido.ST_PEDIDO;

                    Conexao.BancoDados.TB_GOU_PEDIDOs.InsertOnSubmit(vPedido);
                    Conexao.Enviar();

                    id_pedido = vPedido.ID_PEDIDO;
                }

                #endregion

                #region Atualização

                else
                {
                    existente.ID_PEDIDO  = pedido.ID_PEDIDO;
                    existente.ID_EMPRESA = pedido.ID_EMPRESA;
                    existente.ID_MESA    = pedido.ID_MESA;
                    existente.ID_CARTAO  = pedido.ID_CARTAO;
                    existente.ST         = pedido.ST_PEDIDO;
                    Conexao.Enviar();
                    id_pedido = pedido.ID_PEDIDO;
                }

                for (int i = 0; i < pedido.Itens.Count; i++)
                {
                    GravaItemPedido(pedido, pedido.Itens[i]);
                }

                #endregion


                Conexao.Finalizar(ref posicaoTransacao);
            }
            catch (Exception excessao)
            {
                Conexao.Voltar(ref posicaoTransacao);
                throw excessao;
            }
        }