[BATCH] [CODE] PUNTO DE VENTA [RESUELTO]

Iniciado por ZeroxHack, 21 Agosto 2012, 01:26 AM

0 Miembros y 1 Visitante están viendo este tema.

ZeroxHack

Hola mi nombre es ZEROX  o MR_BOGEY :)   les comparto mi codigo de punto de venta no imprime - solo impre un reporte en pantalla
ok

EL CODIGO ES ESTE
     Y LAS FUNCIONES SON :
    1.- AGREGAR CLIENTES
   2.- BORRAR CLIENTES
   3.- VENTAS
    4.-  VER VENTA
   5.- CALCULADORA
  6. - NOTAS


EL CODIGO :
Código (DOS) [Seleccionar]
@echo off
title Base de datos Clientes
color b5
:menu
cls
echo.&&echo.                                        
echo                              °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°                
echo                              °Fecha :: %DATE%  Hora:: %TIME%°°
echo                              °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo .
echo .
echo               °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo               °------1.- Añadir Cliente    °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo               °---------- 2.- Buscar Cliente    °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo               °----------- ---3.- Mostrar Todos Los Clientes Registrados  °°°°
echo               °-----------------4.- Borrar Base de datos Cliente        °°°°°°°°°
echo               °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo               °------------------------5.- VENTA        °°°°°°°°°°°°°°°°°°°°°°°°°°  
echo               °--------------------- -------6.- Ver Ventas    °°°°°°°°°°°°°°°°°°°°
echo               °--------------------------------7.- Calculadora      °°°°°°°°°°°°°°°
echo               °-------------------------------------8.- Borrar Ventas    °°°°°°°°°°
echo               °----------------------------------------- 9.- Notas!   °°°°°°°°°°°°°°
echo               °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo .
echo  NOTA:  
type %homedrive%\nota.txt
echo --------------------------------
set /p o= Elija una opcion :
if not defined o goto menu
if %o%==1 (goto add)
if %o%==2 (goto b)
if %o%==3 (goto x)
if %o%==4 (goto dl)
if %o%==5 (goto ven)
if %o%==6 (goto ver)
if %o%==7 (goto equ)
if %o%==8 (goto vent)  
if %o%==9 (goto nota)
if %o%==exit (goto exit)
if %o%==salir (goto exit)  (goto menu)

:exit
exit




:nota
set /p not= Escriba Alguna Nota =
echo NOTA GUARDADA!!
pause
if exist  %homedrive%\nota.txt  del  %homedrive%\nota.txt
   else  md %homedrive%\nota.txt
echo >>    :%not%>>%homedrive%\nota.txt
goto menu


:vent
cls
echo.
echo Se borrara la base de datos esta seguro si/no
echo Se perderan todo los datos guardados
set /p de=^>^>
if %de%==si (goto del2) else (goto menu)
if %de%==no (goto menu)

:del2
cls
echo Borrando...
ping -n 2 0.0.0.0>nul
del /q /f %homedrive%\ventas.txt
echo Eliminado
pause
goto menu



:equ
goto yesi
IF NOT EXIST  %homedrive%/calc.bat  goto now
:now
echo             EL ARCHIVO CALCULADORA NO ESTA ALOJADO
echo        EN EL DISCO LOCAL C:  COPIELO EN ESA DIRECCION
pause
goto menu

:yesi
start %homedrive%/calc.bat
pause
goto menu

:add
cls
set /p name= Nombre de cliente =
set /p dire= Direccion         =
set /p n= Numero               =
set /p c= Compras Recientes    =
set /p t= Deudas/Describcion                =
set /p s=  N° Ref        =
echo Cliente    :%name%>>%homedrive%\clientes.txt
echo Direccion  :%dire%>>%homedrive%\clientes.txt
echo Numero     :%n%>>%homedrive%\clientes.txt
echo Compras Recientes    :%c%>>%homedrive%\clientes.txt
echo Deudas/Describcion      :%t%>>%homedrive%\clientes.txt
echo  N° Ref      :%s%>>%homedrive%\clientes.txt
echo ------------------------------------------------->>%homedrive%\clientes.txt
echo Generado Correctamente
pause
goto menu

:b
cls
set /p bo= Que desea buscar dentro de la Base de datos :
setlocal enabledelayedexpansion
for /f "tokens=*" %%_ in ('find "%bo%" "%homedrive%\clientes.txt" ') do (
  set "valor=%%_"
  echo El valor es : !valor!
)
pause
goto menu



















:dl
setlocal enabledelayedexpansion enableextensions
echo.
echo. Cargando...
echo.
set "bar="
set "percent=0"
set "count=0"
for /l %%i in (1,1,50) do set "bar=!bar!±"
:loop
set /p "= %bar:~0,20% %percent%%%"<nul
ping -n 1 -w 1 localhost>nul
for /l %%i in (1,1,26) do set /p "="<nul
set "bar=Û%bar%"
set /a "count+=1"
set /a "percent+=5"
if %count% leq 20 goto:loop
echo.
echo.
echo. Done.
echo Se borrara la base de datos esta seguro si/no
echo Se perderan todo los datos guardados
set /p de=^>^>
if %de%==si (goto del) else (goto menu)
if %de%==no (goto menu)
pause>nul


:del
cls
echo Borrando...
ping -n 2 0.0.0.0>nul
del /q /f %homedrive%\clientes.txt
echo Eliminado
pause
goto menu



:x
cls
echo.
type %homedrive%\clientes.txt
pause
goto menu

:ver
cls
echo.
type %homedrive%\ventas.txt
pause
goto menu


:ven
cls
echo  PROGRAMA DE VENTAS
echo   By Mr_bogey
echo ------------------------------
echo
set /p vos= Articulo =
set /p v2= Precio =
set /p v3= Cantidad =
set /p v4= Cliente =
echo  Fecha  %DATE%  Hora:: %TIME%°°>>%homedrive%\ventas.txt
echo Articulo    :%vos%>>%homedrive%\ventas.txt
echo Precio  :%v2%>>%homedrive%\ventas.txt
echo Cantidad     :%v3%>>%homedrive%\ventas.txt
echo Cliente  :%v4%>>%homedrive%\ventas.txt
echo ------------------------------------------------->>%homedrive%\ventas.txt
echo Generado Correctamente
echo EL COBRO DE LA VENTA ES DE
set /a d1=v2*v3
echo %d1%
pause
goto men




:men
cls
echo.&&echo.
echo ----------------------------------
echo  COBRARSE %d1%
echo ----------------------------------
echo desea acer otra venta
echo COBRAR!(C)
echo  SI ( Y )
echo  NO ( N )
echo.
set /p o1= Elija una opcion :
if not defined o goto menu
if %o1%==Y (goto ven1)
if %o1%==N (goto menu)
if %o1%==C (goto cobrar)


:cobrar
echo ----------------------------------
echo  COBRARSE %d1%
echo ----------------------------------
echo DIGITE LA CANTIDAD QUE RECIBIO
set /p num4=   RECIBO:
set /a resu=%num4% - %d1%
pause
echo REPORTE DE VENTA
echo           Fecha  %DATE%  Hora:: %TIME%
echo                    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                     º  TOTAL: %d1%      º
echo                     º                           º
echo                     º  EFECTIVO  %num4%   º
echo                     º                               º
echo                     º   CAMBIO %resu%   º
echo                     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo NO OLVIDE ENTREGAR BIEN EL CAMBIO!!
goto cliente




:ven1
cls
echo.&&echo.
echo -----------------------------------------------------------------------
echo  COBRARSE %d1% DE LOS ARTICULOS ANTERIORES
echo ---------------------------------- ------------------------------------
echo  .
set /p vt= Articulo =
set /p vs= Precio =
set /p vd= Cantidad =
echo Cliente = %v4%
echo  Fecha  %DATE%  Hora:: %TIME%°°>>%homedrive%\ventas.txt
echo Articulo    :%vt%>>%homedrive%\ventas.txt
echo Precio  :%vs%>>%homedrive%\ventas.txt
echo Cantidad     :%vd%>>%homedrive%\ventas.txt
echo Cliente  :%v4%>>%homedrive%\ventas.txt
echo ------------------------------------------------->>%homedrive%\ventas.txt
echo generado correctamente
echo                      TOTAL DE ESTE ARTICULO
set /a f=vs*vd
echo .
echo                CALCULANDO...
pause
echo                                   Total de estos articulos: %f%
set /a total= %f% + %d1%
echo                                      Total de Todo %total%

echo  DIGITE EL
set /p total2=   EFECTIVO;
set  /a  fin=%total% - %total2%
echo
echo                  -------------------------------------------------------
echo              IMPRIMIENDO EN PANTALLA EL RECIBO  
echo --------------------------------------------------------------------------
pause
echo             °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°                
echo             °Fecha :: %DATE%  Hora:: %TIME%°°
echo             °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo  ººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
echo  º cant º                         ºº  articulo    ºººººººººººººº                  
echo  º º %vd%----------                    %vt% ºººººººººººººº
echo  º º %v3% -------------                %vos% ºººººººººººº
echo  º
echo  º                                      --  ºTotal :  %total%º
echo  º                                        
echo  º                                       -- ºEfectivo: %total2%º
echo  º                                      
echo  º                                        --  ºCAMBIO ; %fin%º
echo  ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
echo .
echo                    *GRACIAS POR VISITAR LA TIENDA
goto cliente



:cliente
echo.&&echo.
echo   ººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
echo   ºººEL CLIENTE %v4% PODRIA NO ESTAR REGISTRADOººº
echo   ºEN LA BASE DE DATOS                         º       º
echo   ºººººººººººººººººOPCIONES: ººººººººººººººººº           º
echo   ººººººººº1.-Buscarlo                            º                º
echo   ºººººººººººººº2.- Agregar                       º              º
echo   ººººººººººººººººº3.- menuºººººººººººººººººººººººººººººººººººººº
set /p user= Digite Opcion
if %user%== 1 (goto be)
if %user%== 2 (goto add1)
if %user%== 3 (goto menu)



:add1
cls
set /p dire= Direccion         =
set /p n= Numero               =
set /p c= Compras en deudas   =
echo  Registro Fecha  %DATE%  Hora:: %TIME%°°>>%homedrive%\clientes.txt
echo Cliente    :%v3%>>%homedrive%\clientes.txt
echo Direccion  :%dire%>>%homedrive%\clientes.txt
echo Numero     :%n%>>%homedrive%\clientes.txt
echo Compras en deudas     :%c%>>%homedrive%\clientes.txt
echo ------------------------------------------------->>%homedrive%\clientes.txt
echo Generado Correctamente
pause
goto menu








:be
cls
echo desea buscar  %v4%
setlocal enabledelayedexpansion
for /f "tokens=*" %%_ in ('find "%v4%" "%homedrive%\clientes.txt" ') do (
  set "valor=%%_"
  echo El valor es : !valor!
)
pause
goto menu






si tiene errores avisen y si pueden mejorarlo , o recomendarme algo
bienvenidas sus palabras  sean

                me despido despues mas cositas :)

este codigo lo comparto porque mayormente el codigo me apoyo este foro y pense devolverle el favor a los demas dando un empujon a un punto de venta que almacene   ;)          
hasta luego




MOD: Modera el uso de las mayúsculas porfavor.
Es mejor aprender antes de ir a la guerra y no morir al ir  :D

Eleкtro

No suelo analizar códigos que ya están completados, Pero me he fijado en esta parte:

Código (dos) [Seleccionar]
:equ
goto yesi
IF NOT EXIST  %homedrive%/calc.bat  goto now
:now


Directamente vas a la etiqueta :yesi, La comprobación no se llega a realizar, Debes colocar la linea del "If exist" antes del "goto :yesi".


Aunque sería mejor que simplificases toda esa parte, de esta manera:

Código (dos) [Seleccionar]
if "%o%"=="7" (call :equ "%homedrive%\calc.bat")

:equ
IF NOT EXIST %* (
echo             EL ARCHIVO CALCULADORA NO ESTA ALOJADO
echo        EN EL DISCO LOCAL %homedrive%  COPIELO EN ESA DIRECCION
) ELSE (
start %*
)
pause
Goto :EOF


Saludos








ZeroxHack

#2
muchas gracias  :d me sirvio esque eso de (     y   )  no se lo ponia
solo le ponia  if y else  asi que no me funcionaba y busque algo mejor
pero me lo solucionaste :)  muchas gracias 
        ahora lo que tratare de acer es que funcionen con teclas como f5 f2 etc!  ::)




MOD: El próximo abuso de mayusculas te tocará corregirlo a ti  :P
Es mejor aprender antes de ir a la guerra y no morir al ir  :D

Eleкtro

ZeroxHack, No abuses de las mayusculas en el foro, En las normas se considera como gritos.

Cita de: ZeroxHack en 21 Agosto 2012, 02:03 AMAHORA LO QUE TRATARE DE ACER ES QUE FUNCIONEN CON TECLAS COMO F5 F2 ETC!  ::)
Te estás refiriendo a un keypress event, Es imposible hacer eso en Batch, No puedes capturar las teclas especiales.

Para que eso fuera posible, Tendría que existir algún programa de terceros pensado especialmente para Batch capaz de capturar un evento de teclado, Y ejecutar ese programa en segundo plano ANTES de ejecutar el comando del "Set /P", Porque el userinput pausa el procesamiento del bat hasta que introduces una tecla IMPRIMIBLE y pulsas "enter".

No se si alguien se habrá molestado en hacer alguna tool así para Batch, Quizás el programa de Bolivianito, Colous.exe, Pero no estoy seguro de si tiene esa función o la estoy confundiendo con la función de clickar en coordenadas.

Saludos