private VFormaPagPorVendaColecao PreencherVFormaPagPorVendaColecao(DataTable dataTable)
        {
            VFormaPagPorVendaColecao vFormaPagPorVendaColecao = new VFormaPagPorVendaColecao();

            foreach (DataRow row in dataTable.Rows)
            {
                VFormaPagPorVendaInfo vFormaPagPorVendaInfo = new VFormaPagPorVendaInfo
                {
                    formpagdescricao       = Convert.ToString(row["formpagdescricao"]),
                    pagamentoid            = Convert.ToInt32(row["pagamentoid"]),
                    pagamentoidvenda       = Convert.ToInt32(row["pagamentoidvenda"]),
                    pagdetalhesnumparcelas = Convert.ToInt32(row["pagdetalhesnumparcelas"]),
                    pagdetalhesvalor       = Convert.ToDecimal(row["pagdetalhesvalor"]),
                    formpagid = Convert.ToInt32(row["formpagid"])
                };

                vFormaPagPorVendaColecao.Add(vFormaPagPorVendaInfo);
            }

            return(vFormaPagPorVendaColecao);
        }
Esempio n. 2
0
        public string[] CriarCupom(VendaInfo venda, string servico = "")
        {
            servico = string.IsNullOrEmpty(servico) ? "" : "(" + servico + ")";
            string cupom = string.Empty;

            string  fiscal    = "CUPOM NÃO FISCAL";
            string  a         = fiscal.Substring(0, fiscal.Length / 2).PadLeft(tam / 2, '=');
            string  b         = fiscal.Substring(fiscal.Length / 2).PadRight(tam / 2, '=');
            string  titulo    = a + b;
            decimal desconto  = 0;
            string  nomTitulo = string.Empty;

            //dados da venda.
            if (venda != null)
            {
                switch (venda.venidstatus)
                {
                case 1:
                    nomTitulo = "ORÇAMENTO";
                    break;

                case 2:
                    nomTitulo = "VENDA";
                    break;

                case 3:
                    nomTitulo = "CANCELADA";
                    break;

                default:
                    break;
                }

                string nomA = nomTitulo.Substring(0, nomTitulo.Length / 2).PadLeft(tam / 2);
                string nomB = nomTitulo.Substring(nomTitulo.Length / 2).PadRight(tam / 2);
                nomTitulo = nomA + nomB;

                PessoaInfo funcInfo   = funcNegocios.ConsultarPessoaId(venda.venidfunc);
                string     dadosvenda = string.Empty;
                dadosvenda += "CONTROLE: " + string.Format("{0:00000000}", venda.venid) + Environment.NewLine;
                dadosvenda += "VENDEDOR: " + funcInfo.pssnome + Environment.NewLine;
                dadosvenda += "DATA/HORA: " + venda.vendatacad + Environment.NewLine;

                string dadositem = string.Empty;
                VendaDetalhesColecao venDetalhesColecao = vendaNegocios.ConsultarVendaDetalhesIdVenda(venda.venid);

                //dados da empresa
                string empresa = "EMPRESA";
                string empA    = string.Empty;
                string empB    = string.Empty;

                empA    = empresa.Substring(0, empresa.Length / 2).PadLeft(tam / 2);
                empB    = empresa.Substring(empresa.Length / 2).PadRight(tam / 2);
                empresa = empA + empB;

                EmpresaNegocios empresaNegocios = new EmpresaNegocios(Form1.Empresa.empconexao);
                UnidadeInfo     unidade         = empresaNegocios.ConsultarUnidadeId(venda.venidunidade);
                string          dadosemp        = string.Empty;
                dadosemp += empresa + Environment.NewLine;
                dadosemp += unidade.unifantasia + Environment.NewLine;
                dadosemp += "Cnpj: " + string.Format(@"{0:00\.000\.000\/0000\-00}", Convert.ToDouble(unidade.unicnpj)) + Environment.NewLine;
                dadosemp += "End.: " + unidade.unicomplemento + ", " + Environment.NewLine;
                dadosemp += unidade.unilogradouro + Environment.NewLine;
                dadosemp += unidade.unibairro + ", " + unidade.unicidade + "-" + unidade.uniuf + Environment.NewLine;
                dadosemp += "Ref.: " + unidade.unireferencia + Environment.NewLine;
                dadosemp += "Telefone: " + unidade.unitelefone + Environment.NewLine;
                dadosemp += "Site: " + unidade.unisite.ToLower() + Environment.NewLine;
                dadosemp += "Email: " + unidade.uniemail.ToLower() + Environment.NewLine;

                //dados do cliente
                PessoaInfo infoPessoa = clienteNegocios.ConsultarPessoaId(venda.venidcliente);
                string     cliente    = "CLIENTE " + servico;
                string     cliA       = string.Empty;
                string     cliB       = string.Empty;

                cliA    = cliente.Substring(0, cliente.Length / 2).PadLeft(tam / 2);
                cliB    = cliente.Substring(cliente.Length / 2).PadRight(tam / 2);
                cliente = cliA + cliB;


                string dadoscliente = string.Empty;
                dadoscliente += cliente + Environment.NewLine;
                dadoscliente += infoPessoa.pssnome + Environment.NewLine;

                dadoscliente += "End.: " + infoPessoa.pssendcomplemento + ", " + Environment.NewLine
                                + infoPessoa.pssendlogradouro + Environment.NewLine;
                dadoscliente += infoPessoa.pssendbairro + ", " + infoPessoa.pssendcidade + "-" + infoPessoa.pssenduf + Environment.NewLine;


                dadoscliente += "Telefone: " + infoPessoa.psstelefone + Environment.NewLine;
                dadoscliente += "Email: " + infoPessoa.pssemail + Environment.NewLine;

                //produtos
                int item = 1;
                foreach (VendaDetalhesInfo detalhes in venDetalhesColecao)
                {
                    ProdutoInfo produtoInfo = produtoNegocios.ConsultarProdutosId(detalhes.vendetalhesidprod);

                    decimal calc = 0;

                    if (produtoInfo.protaxa)
                    {
                        calc = -detalhes.vendetalhesvalordesc;
                    }
                    else
                    {
                        calc = (detalhes.vendetalhesvalorunit - detalhes.vendetalhesvalordesc) * detalhes.vendetalhesquant;
                    }

                    string desc = string.Empty;
                    string prod = string.Empty;

                    dadositem += string.Format("{0:00}", item++) + "   ";

                    if (calc > 0)
                    {
                        desc  = (-calc).ToString("C2");
                        prod += desc;
                    }

                    prod += (detalhes.vendetalhesquant + " UN x " + detalhes.vendetalhesvalordesc.ToString("C2") + " = " + (detalhes.vendetalhesquant * detalhes.vendetalhesvalordesc).ToString("C2")).PadLeft(tam - desc.Length);

                    dadositem += string.Format("{0:00000}", produtoInfo.proId) + " " + produtoInfo.proDescricao + Environment.NewLine;
                    dadositem += prod.PadLeft(tam) + Environment.NewLine;
                    desconto  += calc;
                }

                //formas de pagamentos
                string dadosformapag = string.Empty;
                string troco         = string.Empty;

                if (venda.venmodo > 0)
                {
                    string pagamento = "FORMA DE PAGAMENTO";
                    string pagA      = string.Empty;
                    string pagB      = string.Empty;

                    pagA      = pagamento.Substring(0, pagamento.Length / 2).PadLeft(tam / 2);
                    pagB      = pagamento.Substring(pagamento.Length / 2).PadRight(tam / 2);
                    pagamento = pagA + pagB;

                    dadosformapag = pagamento + Environment.NewLine;
                    VFormaPagPorVendaColecao forma         = vendaNegocios.ConsultarVFormaPagPorVendaColecao(venda.venid);
                    PagamentoInfo            pagamentoInfo = vendaNegocios.ConsultarPagamentoIdVenda(venda.venid);

                    foreach (VFormaPagPorVendaInfo pag in forma)
                    {
                        string descricao = pag.formpagdescricao;

                        if (pag.pagdetalhesnumparcelas > 1)
                        {
                            decimal valor = pag.pagdetalhesvalor / pag.pagdetalhesnumparcelas;
                            descricao += " " + pag.pagdetalhesnumparcelas + "x " + valor.ToString("C2");
                        }
                        else
                        {
                            descricao += " À VISTA";
                        }

                        if (pag.formpagid == 1 && pagamentoInfo.pagamentotroco > 0)
                        {
                            descricao  = descricao.Replace(" À VISTA", "");
                            descricao += ", Recebido = " + (pag.pagdetalhesvalor + pagamentoInfo.pagamentotroco).ToString("C2");
                        }

                        dadosformapag += descricao + pag.pagdetalhesvalor.ToString("C2").PadLeft(tam - descricao.Length) + Environment.NewLine;
                    }

                    troco += Environment.NewLine;

                    if (desconto > 0)
                    {
                        string totalDesconto = "(" + string.Format("{0:0.00}", ((desconto * 100) / (venda.venvalor + desconto))) + "%) " + (-desconto).ToString("C2");
                        troco += "DESCONTO TOTAL: " + totalDesconto.PadLeft(tam - 16) + Environment.NewLine;
                    }

                    if (pagamentoInfo.pagamentotroco > 0)
                    {
                        troco += "TROCO: " + (-pagamentoInfo.pagamentotroco).ToString("C2").PadLeft(tam - 7) + Environment.NewLine;
                    }
                }

                string total = "SUBTOTAL: " + (venda.venvalor + desconto).ToString("C2").PadLeft(tam - 10) + Environment.NewLine;
                total += "VALOR A PAGAR: " + venda.venvalor.ToString("C2").PadLeft(tam - "VALOR A PAGAR: ".Length);

                cupom += titulo + Environment.NewLine;
                cupom += "" + Environment.NewLine;
                cupom += nomTitulo + Environment.NewLine;
                cupom += dadosvenda;
                cupom += "".PadLeft(tam, '=') + Environment.NewLine;
                cupom += dadosemp;
                cupom += "".PadLeft(tam, '=') + Environment.NewLine;
                cupom += dadoscliente;
                cupom += "".PadLeft(tam, '-') + Environment.NewLine;
                cupom += "ITEM COD.  DESCRICAO" + Environment.NewLine;
                cupom += "".PadLeft(tam, '-') + Environment.NewLine;
                cupom += dadositem + Environment.NewLine;
                cupom += "".PadLeft(tam, '*') + Environment.NewLine;
                cupom += "QUANT DE ITENS: " + string.Format("{0:00}", venda.venquant).PadLeft(tam - 16) + Environment.NewLine;
                cupom += total;
                cupom += "" + Environment.NewLine;
                cupom += "" + Environment.NewLine;
                cupom += dadosformapag;
                cupom += troco;

                string corpo  = cupom;
                string rodape = string.Empty;

                if (venda.venmodo > 0)
                {
                    rodape += "".PadLeft(tam, '.') + Environment.NewLine;
                    rodape += "" + Environment.NewLine;
                    rodape += nomTitulo + Environment.NewLine;
                    rodape += dadosvenda;
                    rodape += "UNIDADE: " + unidade.uniunidade + Environment.NewLine;
                    rodape += "" + Environment.NewLine;
                    rodape += dadoscliente;
                    rodape += "" + Environment.NewLine;
                    rodape += total;
                    rodape += "" + Environment.NewLine;
                    rodape += "" + Environment.NewLine;
                    rodape += dadosformapag;
                    rodape += troco;
                    rodape += "".PadLeft(tam, '.') + Environment.NewLine;
                }

                string[] ArrCupom = new string[2];

                ArrCupom[0] = corpo;
                ArrCupom[1] = rodape;

                return(ArrCupom);
            }
            else
            {
                FormMessage.ShowMessegeWarning("Nada foi encontrado!");
                return(null);
            }
        }