예제 #1
0
        private void CalculaSubtotal()
        {
            try
            {
                decimal desconto   = seDesconto.Value;
                decimal subtotal   = 0m;
                decimal apagar     = 0m;
                decimal entrega    = seEntrega.Value;
                decimal liquidado  = 0m;
                decimal descontado = 0m;

                if (ID_Nota != 0)
                {
                    liquidado  = new QDuplicata().BuscaTotalLiquidado(ID_Nota);
                    descontado = new QDuplicata().BuscaTotalDesconto(ID_Nota);
                    vlPrazo    = new QDuplicata().BuscaTotalAprazo(ID_Nota);
                }

                var PagamentoPedido = new SYS.QUERYS.Lancamentos.Comercial.QPedido().Buscar(ID_Pedido).ToList();

                for (int i = 0; i < bsItens.Count; i++)
                {
                    subtotal += (bsItens[i] as MPedidoItem).VL_SUBTOTAL;
                }

                foreach (var posicaoRow in gvItens.GetSelectedRows())
                {
                    apagar += ((decimal?)gvItens.GetRowCellValue(posicaoRow, colVL_SUBTOTAL)).Padrao();
                }

                seSubtotal.Value = subtotal;
                seApagar.Value   = (apagar == 0 ? subtotal : apagar) - desconto - liquidado - descontado - vlPrazo + entrega;

                //if (ID_Pedido != 0 && PagamentoPedido[0].ID_FORMAPAGAMENTO != "")
                //    seApagar.Value = 0m;

                if (seApagar.Value <= 0)
                {
                    seDesconto.Value = 0m;
                    seApagar.Value   = ID_Nota > 0 ? seApagar.Value : subtotal;

                    //if (ID_Pedido != 0 && PagamentoPedido[0].ID_FORMAPAGAMENTO != "")
                    //    seApagar.Value = 0m;
                }
            }
            catch (Exception)
            {
            }
        }
예제 #2
0
        private void afterGravar(string condicao, decimal valor)
        {
            if (gvItens.DataSource == null)
            {
                return;
            }

            if (valor < seTotalPagar.Value)
            {
                valor = seTotalPagar.Value;
            }


            if (condicao == "01")
            {
                if (XtraMessageBox.Show("Confirmar fechamento em dinheiro?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    return;
                }
            }

            if (condicao == "03")
            {
                if (XtraMessageBox.Show("Confirmar fechamento em cartão de crédito?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    return;
                }
            }

            if (condicao == "04")
            {
                if (XtraMessageBox.Show("Confirmar fechamento em cartão de débito?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    return;
                }
            }

            if (condicao == "05")
            {
                BuscaClifor();
            }

            decimal valorDoc = 0m;

            decimal liquidado  = new QDuplicata().BuscaTotalLiquidado(ID_NOTA);
            decimal descontado = new QDuplicata().BuscaTotalDesconto(ID_NOTA);

            valorDoc   = valor > seTotalPagar.Value - liquidado ? seTotalPagar.Value - liquidado : valor;
            valorTroco = condicao == "01" && valor > seTotalPagar.Value - liquidado ? valor - (seTotalPagar.Value - liquidado) : 0;

            var vpedido = new MPedido();

            vpedido.ID_EMPRESA         = 1;
            vpedido.ID_CLIFOR          = ID_Clifor;
            vpedido.ST_ATIVO           = gvItens.DataRowCount > 0;
            vpedido.ST_PEDIDO          = "F";
            vpedido.TP_MOVIMENTO       = "S";
            vpedido.CONDICAO_PAGAMENTO = condicao;
            vpedido.VALO_DOCUMENTO     = valorDoc;

            for (int i = 0; i < bsItens.Count; i++)
            {
                vpedido.Itens.Add((bsItens[i] as MPedidoItem));
            }

            var pedido           = new SYS.QUERYS.Lancamentos.Comercial.QPedido();
            var posicaoTransacao = 0;


            pedido.Gravar(vpedido, false, ref posicaoTransacao);

            NR_pedido = pedido.ID_PEDIDO;
            ID_NOTA   = pedido.ID_NOTA;

            calculaSubTotal(true);

            if (seTotalPagar.Value > 0)
            {
                bsItens.Clear();
                zeracampos();
                if (valorTroco > 0)
                {
                    teNM.Text = "Troco: " + valorTroco.ToString("N2");
                }
            }

            //if(Mensagens.Pergunta("Deseja enviar e imprimir NFC-e?") == DialogResult.Yes)
            //{
            //    var processador = new FComunicadorFiscal_Processamento();

            //    var documento = QQuery.BancoDados.TB_FAT_NOTA_X_DOCUMENTOs.FirstOrDefault(a => a.ID_NOTA == pedido.ID_NOTA && a.ID_EMPRESA == vpedido.ID_EMPRESA);
            //    processador.Enviar(documento.ID_DOCUMENTO, documento.ID_EMPRESA, Modelo.NFCe, Ambiente.Producao, Emissao.ContigenciaOFFLINE, ImpressaoDANFE.NFCe);
            //}
        }