예제 #1
0
파일: ECFTest.cs 프로젝트: njmube/openposbr
 public void CriaCupomFiscal()
 {
     using (ICupomFiscal cf = new CupomFiscal())
     {
         cf.AbreCupom("", "", "", false);
         cf.VendeItem("001", "teste", "FF", 12.00M, 10.00M, 0.0M, "UN", "%", "D", -1);
         cf.SubTotalizaCupom(0.0M, "teste");
         cf.EfetuaPagamento("01", 12.00M, "", false);
         cf.FechaCupom("Obrigado. Volte sempre!");
         WriteLine("Cupom impresso com sucesso!");
     }
 }
예제 #2
0
파일: ECFTest.cs 프로젝트: njmube/openposbr
 public void TotalizaCupomFiscal()
 {
     // Totalizando cupom subtotalizando-o primeiro
     using (ICupomFiscal cf = new CupomFiscal())
     {
         cf.AbreCupom("", "", "", false);
         cf.VendeItem("001", "teste", "FF", 12.00M, 10.00M, 0.0M, "UN", "%", "D", -1);
         cf.SubTotalizaCupom(2.00M, "Obrigado pela preferência!");
         cf.EfetuaPagamento("01", 12.00M, "", false);
         cf.FechaCupom("Obrigado. Volte sempre!");
         WriteLine("Cupom totalizado com com sucesso!");
     }
 }
예제 #3
0
파일: ECFTest.cs 프로젝트: njmube/openposbr
        public void CupomVinculado()
        {
            using (ICupomFiscal cf = new CupomFiscal())
            {
                #region Dados do cupom fiscal
                string cnpj = string.Empty;
                string nome = string.Empty;
                string endereco = string.Empty;

                string codProd = "00001";
                string descricaoProd = "Caneta Azul";
                string aliquota = "I";
                double qtde = 10;
                double vlrUnit = new Random().NextDouble();
                double desc = 0;
                string un = "UN";
                string tipoDesc = "%";
                string descAcre = "D";
                int codDepto = -1;
                double valor = qtde * vlrUnit;
                bool vinculado = false;

                string obs = "Imprime esse texto no cupom fiscal";
                string codFormaPagto = string.Empty;

                FormaPagamento[] formaPagtos = cf.FormasPagamento;

                for (int i = 0; i < 5; i++)
                {
                    codFormaPagto = formaPagtos[i].Indice;
                }

                cf.AbreCupom(cnpj, nome, endereco);
                cf.VendeItem(codProd, descricaoProd, aliquota, (decimal)qtde, (decimal)vlrUnit, (decimal)desc, un, tipoDesc, descAcre, codDepto);
                cf.SubTotalizaCupom((decimal)desc, obs);
                cf.EfetuaPagamento(codFormaPagto, (decimal)valor, obs, vinculado);
                cf.FechaCupom(obs);
                #endregion

                int COO = cf.COO;

                using (ICupomVinculado cv = new CupomVinculado())
                {
                    #region Dados do cupom vinculado
                    double valorCV = valor;
                    #endregion

                    cv.AbreCupomVinculado(COO, codFormaPagto, (decimal)valorCV);
                }
            }
        }
예제 #4
0
파일: ECFTest.cs 프로젝트: njmube/openposbr
        public void ReducaoZ()
        {
            using (ICupomFiscal cf = new CupomFiscal())
            {
                #region Dados do cupom fiscal
                string cnpj = string.Empty;
                string nome = string.Empty;
                string endereco = string.Empty;

                string codProd = "00001";
                string descricaoProd = "Caneta Azul";
                string aliquota = "I";
                double qtde = 10;
                double vlrUnit = new Random().NextDouble();
                double desc = 0;
                string un = "UN";
                string tipoDesc = "%";
                string descAcre = "D";
                int codDepto = -1;
                double valor = qtde * vlrUnit;
                bool vinculado = false;

                string obs = "Imprime esse texto no cupom fiscal";
                string codFormaPagto = string.Empty;

                FormaPagamento[] formaPagtos = cf.FormasPagamento;

                for (int i = 0; i < 1; i++)
                {
                    codFormaPagto = formaPagtos[i].Indice;
                }

                cf.AbreCupom(cnpj, nome, endereco);
                cf.VendeItem(codProd, descricaoProd, aliquota, (decimal)qtde, (decimal)vlrUnit, (decimal)desc, un, tipoDesc, descAcre, codDepto);
                cf.SubTotalizaCupom((decimal)desc, obs);
                cf.EfetuaPagamento(codFormaPagto, (decimal)valor, obs, vinculado);
                cf.FechaCupom(obs);
                #endregion

                //Faz a impressão da Redução Z
                using (IRelatorioFiscal rf = new RelatorioFiscal())
                {
                    //Para imprimir a Redução Z, altere o valor dessa variável para "true"
                    bool imprimeReducao = false;

                    //Data da movimentação
                    DateTime dataMovimentacao = DateTime.Now;

                    if (imprimeReducao)
                        rf.ReducaoZ(dataMovimentacao);
                }
            }
        }
예제 #5
0
파일: Bobina.cs 프로젝트: njmube/openposbr
        /// <summary>
        /// Imprime o item na impressora e na tela
        /// </summary>
        /// <param name="item">item do movimento</param>
        /// <param name="itemNumero">número do item</param>
        public void ImprimirItem(IItem item, int itemNumero, bool imprimeItemECF = true)
        {
            #region buffer
            if (!fromBuffer)
            {
                buffer.Add(new BufferItem
                    {
                        VendeItem = new VendeItemArgs
                        {
                            Item = item,
                            ItemNumero = itemNumero,
                            ImprimeItemECF = imprimeItemECF
                        }
                    });
            }
            #endregion

            LastIndex = itemNumero - 1;

            string line = String.Format("{0} {1} {2}",
                itemNumero.ToString().PadLeft(3, '0'),
                item.ItemMovimentado.EGUID,
                item.ItemMovimentado.Descricao);

            WriteLine(line);

            string subtotal = (item.Quantidade * item.ValorUnitarioBruto).ToString("N2");
            line = String.Format("    {0:N2}{1} X {2:N2}     F1",
                item.Quantidade,
                 "UN",
                item.ValorUnitarioBruto);

            line = line.PadRight(MaxLengthLine - subtotal.Length, '_') + subtotal;

            if ((fromBuffer || Settings.ECF.Concomitante) && imprimeItemECF)
            {
                using (ICupomFiscal c = new CupomFiscal(Unimake.Convert.ToEnum<ModeloECF>(Settings.ECF.ECFAtual.ModeloACBR), Settings.ECF.ECFAtual.Porta))
                {

                    IVendaCF venda = item.Parent as IVendaCF;
                    if (venda != null)
                    {
                        venda.NumeroSerieECF = c.NumeroSerie;
                        venda.NumeroOrdemECF = Unimake.Convert.ToInt(c.NumeroECF);
                        venda.COO = c.COO;
                        venda.COOFinal = 0; // Todo: o valor do coo final será atualizado posteriormente pela emissão da redução z
                        venda.CRO = c.CRO;
                        venda.CCF = c.CCF;
                        venda.CRZ = c.CRZ;
                        venda.ValorGrandeTotalECF = c.GrandeTotal;
                    }
                    Model.Faturamento.Lancamento.Movimento.Item.VendaCF.IItem i = (Model.Faturamento.Lancamento.Movimento.Item.VendaCF.IItem)item;
                    i.COO = c.COO;
                    i.Ordem = itemNumero;

                    c.VendeItem(item.ItemMovimentado.EGUID, item.ItemMovimentado.Descricao, i.SituacaoTributaria.ToString(), Unimake.Convert.ToDecimal(item.Quantidade), Unimake.Convert.ToDecimal(item.ValorUnitarioBruto),
                        0.0M, item.Unidade.Descricao, "%", "D", -1);

                    WriteLine(line);

                    //Descontos nos itens dos movimentos vinculados, tais como, DAV, DAV-OS, Pré-Venda, etc.
                    if (item.ValorTotalDesconto > 0 || item.ValorTotalAcrescimo > 0)
                    {
                        decimal vlrDescAcresc = item.ValorTotalDesconto > 0 ? Unimake.Convert.ToDecimal(item.ValorTotalDesconto * item.Quantidade) : Unimake.Convert.ToDecimal(item.ValorTotalAcrescimo * item.Quantidade);
                        string descAcresc = item.ValorTotalDesconto > 0 ? "D" : "A";
                        int numeroItem = item.Ordem;

                        using (ICupomFiscal cf = new CupomFiscal(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta))
                            cf.DescontoAcrescimoItemAnterior(vlrDescAcresc, descAcresc, "$", numeroItem);

                        if (descAcresc.Equals("D"))
                            line = "(-) DESCONTO ITEM {0} R${1}{2:N2}";
                        else
                            line = "(+) ACRÉSCIMO ITEM {0} R${1}{2:N2}";

                        WriteLine(line, (venda.Itens.Count).ToString("D3"), "".PadLeft((MaxLengthLine - 27 -
                                venda.ValorTotalLiquido.ToString().Length)), vlrDescAcresc);
                    }
                }
            }

            StatusImpressao = BobinaStatusImpressao.ItemImpresso;
        }