//INGRID LOHMANN Clear Set Date to British Set Century On Set Message to 17 Center // Set Delimiters On // Set Delimiters to "[]" //VARIAVEIS SENHA cLogin := space(5) cSenha := space(8) @ 10,30 to 15,49 Double @ 12,32 say "Login:" @ 13,32 say "Senha:" @ 12,40 Get cLogin Picture "@!" Valid !Empty(cLogin) @ 13,40 Get cSenha Valid !Empty(cSenha) Read nOrdemServico := 1 //contador autom tico nOpcao := 0 Do While (cLogin = "SUPER") .and. (cSenha = "123mudar") Clear @ 10,25 to 16,53 Double @ 12,30 say "O que deseja fazer?" @ 13,30 Prompt "1 Efetuar Vendas." Message"Essa opcao ira abrir o programa" @ 14,30 Prompt "2 Sair." Message "Essa opcao ira sair do programa" Menu to nOpcao // @ 14,46 Get nOpcao Picture "9" Valid !Empty(nOpcao) // Read //Do While nOpcao = 1 If nOpcao == 1 //VARIAVEIS GERAIS cNomeCliente := space(50) cNomeTecnico := space(40) cDescricaoEquipamento := space(50) dDataOrdemServico := Date() dDataCompra := Ctod("") nLinhaFixa := 10 nLinhaPergunta := 09 nLinha := 12 cTipoOrdem := space(1) nProdutoFinalG := 0 nServicoFinalG := 0 nLimite := 0 //VARIAVEIS ENDEREÇO cEndereco := space(30) cBairro := space(15) cReferencia := space(15) cTelefone := space(12) cDomicilio := space(1) Clear cChamado := "Digite P para produto ou S para servico:" //VARIAVEIS VALOR TOTAL nProdutoFinal := 0 nServicoFinal := 0 nComissaoTotal := 0 @ 01,01 say "ORDEM DE SERVICO N:" @ 01,22 say nOrdemServico @ 03,01 say "Cliente:" @ 04,01 say "Tecnico:" @ 05,01 say "Descricao do Equipamento:" @ 06,01 say "Data da Compra:" @ 06,30 say "Data do Serviço:" @ 07,01 say "Deseja entrega a domicilio?" @ 03,10 Get cNomeCliente Picture "@!" Valid !Empty(cNomeCliente) @ 04,10 Get cNomeTecnico Picture "@!" Valid !Empty(cNomeTecnico) @ 05,27 Get cDescricaoEquipamento Picture "@!" Valid !Empty(cDescricaoEquipamento) @ 06,17 Get dDataCompra Valid !Empty(dDataCompra) .and. (dDataCompra <= dDataOrdemServico) @ 06,47 say dDataOrdemServico @ 07,31 Get cDomicilio Picture "@!" Valid !Empty(cDomicilio) .and.(cDomicilio = "S" .or. cDomicilio = "N") Read If cDomicilio = "S" @ 08,01 say "Endereco:" @ 09,01 say "Bairro:" @ 10,01 say "Referencia:" @ 11,01 say "Telefone:" @ 08,11 Get cEndereco Picture "@!" Valid !Empty(cEndereco) @ 09,09 Get cBairro Picture "@!" Valid !Empty(cBairro) @ 10,13 Get cReferencia Picture "@!" Valid !Empty(cReferencia) @ 11,11 Get cTelefone Picture "@!" Valid !Empty(cTelefone) Read nLinhaPergunta := 14 nLinhaFixa := 17 nLinha := 19 Endif If LastKey() == 27 nAlerta := Alert("Deseja Continuar", {"Sim","Nao"}) If nAlerta = 2 nOrdemServico-- Exit Else Loop Endif EndIf nOrdemServico += 1 Do while .t. @ nLinhaPergunta-1,01 say "Limite:" @ nLinhaPergunta,01 say "Digite P para produto ou S para servico:" @ nLinhaPergunta-1,10 Get nLimite Picture "@E 9,999.99" Valid !Empty(nLimite) @ nLinhaPergunta,41 Get cTipoOrdem Picture "@!" Valid ((cTipoOrdem = "P") .or. (cTipoOrdem = "S")) Read If LastKey() == 27 nAviso := Alert("Deseja mesmo cancelar?", {"Sim","Nao"}) If nAviso = 1 Exit Endif EndIf cTotal := "Total a pagar:" Do while cTipoOrdem = "P" //VARIAVEL NOME PRODUTO cDescricaoProduto := space(30) nTotalServico := 0 //VARIAVEIS PRODUTO nQuantidade := 0 nPrecoUnitario := 0 nDescontoProduto := 0 // Total com Desconto :Total - (Total*Desconto/100) @ nLinhaFixa,01 say "Descricao do Produto:" @ nLinhaFixa,23 Get cDescricaoProduto Picture "@!" Valid !Empty(cDescricaoProduto) @ nLinhaFixa+1,01 say "Quantidade" @ nLinhaFixa+1,14 say "Preco Unit." @ nLinhaFixa+1,35 say "Desconto" @ nLinhaFixa+1,50 say "Total" @ nLinhaFixa+6,01 say "Total Final:" @ nLinha,01 Get nQuantidade Picture "99999" Valid nQuantidade >= 1 @ nLinha,14 Get nPrecoUnitario Picture "@E 9,999,999,999.99" Valid nPrecoUnitario >= 1 @ nLinha,35 Get nDescontoProduto Picture "99999.99" Valid nDescontoProduto >= 0 Read //COMISSAO PRODUTO nComissaoProduto := ((nPrecoUnitario*nQuantidade) *(0.02)) //TOTAL UNITARIO nTotalProduto := (nPrecoUnitario * nQuantidade)-((nPrecoUnitario * nQuantidade)*(nDescontoProduto/100))+(nComissaoProduto) @ nLinha,50 say +AllTrim(Transform(nTotalProduto, "@E 999,999,999,999.99")) //TOTAL FINAL nProdutoFinal := nProdutoFinal + nTotalProduto If nLinha > 23 .and. cEndereco != "S" @ nLinha,01 Clear to 15,70 nLinha := 11 Elseif nLinha > 23 .and. cEndereco = "S" @ nLinha,01 Clear to 15,70 nLinha := 18 Endif nGarantiaProduto := dDataOrdemServico - dDataCompra // 2 anos (730 ou 731 dias) If nGarantiaProduto <= 731 @ nLinhaFixa+7,01 say cTotal @ nLinhaFixa+7,16 say nProdutoFinalG Picture "@E 9,999.99" else @ nLinhaFixa+7,01 say cTotal @ nLinhaFixa+7,16 say nProdutoFinal Picture "@E 999,999,999.99" Endif If LastKey() == 27 nAviso1 := Alert("O que deseja fazer?",{"Finalizar e inicar outro chamado","Apenas Finalizar", "Cancelar"}) If nAviso1 = 1 @ nLinhaFixa+8,13 say nProdutoFinal Picture "@E 999,999,999.99" @ nLinhaPergunta,01 say cChamado @ nLinhaPergunta,41 Get cTipoOrdem Picture "@!" Valid ((cTipoOrdem = "P") .or. (cTipoOrdem = "S")) Read Clear elseif nAviso1 = 2 @ nLinha+4,13 say nProdutoFinal Picture "@E 999,999,999.99" exit else exit Endif Endif nLinha++ Enddo Do while cTipoOrdem = "S" nTotalProduto := 0 //VARIAVEL NOME SERVICO cDescricaoServico := space(30) //VARIAVEIS SERVIÇO nDescontoServico := 0 nComissaoTecnico := 0 nValorServico := 0 @ nLinhaFixa,01 say "Descricao do Servico:" @ nLinhaFixa,23 Get cDescricaoServico Picture "@!" Valid !Empty(cDescricaoServico) Read @ nLinhaFixa+1,01 say "Valor" @ nLinhaFixa+1,25 say "Desconto" @ nLinhaFixa+1,35 say "Comissao" @ nLinhaFixa+1,55 say "Total" @ nLinhaFixa+4,01 say "Total Final:" @ nLinha,01 Get nValorServico Picture "@E 999,999,999.99" Valid nValorServico >=1 @ nLinha,25 Get nDescontoServico Picture "99999.99" Valid nDescontoServico >= 1 @ nLinha,35 Get nComissaoTecnico Picture "99999.99" Valid nComissaoTecnico >= 0 Read nTotalServico := nValorServico + (nValorServico*(nComissaoTecnico/100)) - (nValorServico*(nDescontoServico/100)) @ nLinha,55 say +AllTrim(Transform(nTotalServico, "@E 999,999,999,999.99")) nComissaoTotal := nComissaoTotal + (nValorServico*(nComissaoTecnico/100)) nServicoFinal := nServicoFinal + nTotalServico @ nLinha+8,01 say "Total Comissao:" @ nLinha+8,18 say Transform (nComissaoTotal, "@E 999,999.99") If nLinha > 23 .and. cEndereco != "S" @ nLinha,01 Clear to 15,70 nLinha := 11 Elseif nLinha > 23 .and. cEndereco = "S" @ nLinha,01 Clear to 15,70 nLinha := 18 Endif If LastKey() == 27 nAviso2 := Alert("O que deseja fazer?",{"Finalizar e inicar outro chamado","Apenas Finalizar", "Cancelar"}) If nAviso2 = 1 @ nLinha+6,13 say nServicoFinal Picture "@E 999,999,999.99" @ nLinhaPergunta,01 say "Digite P para produto ou S para servico:" @ nLinhaPergunta,41 Get cTipoOrdem Picture "@!" Valid ((cTipoOrdem = "P") .or. (cTipoOrdem = "S")) Read Clear elseif nAviso2 = 2 @ nLinha+6,13 say nServicoFinal Picture "@E 999,999,999.99" else exit Endif Endif nGarantiaServico := dDataOrdemServico - dDataCompra // 1 ano (365 ou 366 dias) If nGarantiaServico <= 366 @ nLinhaFixa+7,01 say cTotal nProdutoFinalG := 0 @ nLinhaFixa+7,16 say nServicoFinalG Picture "@E 9,999.99" else @ nLinhaFixa+7,01 say cTotal @ nLinhaFixa+7,16 say nServicoFinal Picture "@E 999,999,999.99" Endif nLinha++ Enddo nTaxaDomicilio := ((nProdutoFinal+nServicoFinal)*(0.03)) //VARIAVEIS SUPERVISOR cSupervisor := space(10) cSenhaSupervisor := space(10) Do While (nProdutoFinal+nServicoFinal) > nLimite Clear Set Color to "R/N,R/N" @ 10,30 to 15,55 Double @ 12,32 say "Login:" @ 13,32 say "Senha:" @ 12,40 Get cSupervisor Picture "@!" Valid !Empty(cSupervisor) @ 13,40 Get cSenhaSupervisor Picture "@!" Valid !Empty(cSenhaSupervisor) Read Set Color to "BG/N" If cSupervisor = "SUPERVISOR" .and. cSenhaSupervisor = "LIBERAR123" @ 24,01 say "Total da OS:" @ 24,14 say Transform ((nProdutoFinal+nServicoFinal+nTaxaDomicilio), "@E 999,999.99") else exit Endif //nTotalOrdem := nTotalServico + nTotalProduto Enddo Enddo Else exit Endif Enddo