![Screenshot_96](https://private-user-images.githubusercontent.com/98594436/247383505-14086696-1bfb-4318-8bb0-578e7941b6f1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1ODc3NzAsIm5iZiI6MTcyMzU4NzQ3MCwicGF0aCI6Ii85ODU5NDQzNi8yNDczODM1MDUtMTQwODY2OTYtMWJmYi00MzE4LThiYjAtNTc4ZTc5NDFiNmYxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEzVDIyMTc1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE4NmM4MDEwMzc1ODMxNjc0MmIwZThjMTgyYTBkZGY2ZjM0MmVkMGI4MjExMmJmYzk4YmEzYjU4NmRiNTNhYTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.gA8DNfARcfd15hGBPubLPx4Jf_rJdWiMNXme2evGN5Q)
- El usuario podrá ingresar bajo dos perfiles, Vendedor y Cliente, dependiendo el perfil se cambiara el color del formulario.
- Existen 3 botones: el botón 'Cliente' muestra en los textboxes el email y contraseña de un Cliente hardcodeado para facilitar el ingreso a la aplicacion, lo mismo sucederá al presionar el botón 'Vendedor'. El botón 'Iniciar Sesión' buscará de que perfil es lo ingresado por los textboxes.
- Por último, abrirá los Forms correspondientes a cada perfil.
- Al pararse sobre el icono 'Ayuda/Call-Center' abajo a la izquierda, imprime un mensaje de ayuda para el usuario.
![Screenshot_116](https://private-user-images.githubusercontent.com/98594436/250671125-c5c4ab31-8b59-4347-9b48-c0f5d437bd0b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1ODc3NzAsIm5iZiI6MTcyMzU4NzQ3MCwicGF0aCI6Ii85ODU5NDQzNi8yNTA2NzExMjUtYzVjNGFiMzEtOGI1OS00MzQ3LTliNDgtYzBmNWQ0MzdiZDBiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEzVDIyMTc1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRlMjhkMzVlODUxMTA3YWQzZjU5YjcwM2ZiY2U1NWQ0MjMwZTE0NDZjMWJlMWE3YWI5YWI1MDE0ZDc1N2UwYjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0._XIajLDzFGcinWRG0MeZeJ0tXpW2Swhp29lFQECa6Nw)
- Se le abrirá un menu principal al vendedor en el cual podrá elegir las distintas acciones que puede realizar.
- Al pararse sobre el icono 'Ayuda/Call-Center' abajo a la izquierda, imprime un mensaje de ayuda para el usuario.
![Screenshot_98](https://private-user-images.githubusercontent.com/98594436/247384084-949356b6-4821-49a0-8c9f-444b05c4bacd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1ODc3NzAsIm5iZiI6MTcyMzU4NzQ3MCwicGF0aCI6Ii85ODU5NDQzNi8yNDczODQwODQtOTQ5MzU2YjYtNDgyMS00OWEwLThjOWYtNDQ0YjA1YzRiYWNkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEzVDIyMTc1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY5MmE5NjI5ZWQ1ZjZkY2ZhNDQzMDY4ZDA0N2ZlYjAxMDM1NjI2ZTI1OWRkNWY3YWIwNjY0OTUwMWZiOGVmYmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.7D0ITXYMvkY_6BcrqZmAMYxhYJ4TXwu7pF0uTK7NJqE)
- Deberá de seleccionar a un cliente de la lista para venderle un producto que este disponible.
- Se mostrarán los datos mas relevantes del cliente para el vendedor.
- Se podrá visualizar el método de pago y calcular el costo del producto vendido.
- Para vender tendrá que especificar los kilos que necesite.
- Además podrá sumarle dinero al cliente seleccionado.
- Al pararse sobre el icono 'Ayuda/Call-Center' abajo a la izquierda, imprime un mensaje de ayuda para el usuario.
![Screenshot_117](https://private-user-images.githubusercontent.com/98594436/250671195-a9899985-e520-44a5-9c46-f28187e86d54.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1ODc3NzAsIm5iZiI6MTcyMzU4NzQ3MCwicGF0aCI6Ii85ODU5NDQzNi8yNTA2NzExOTUtYTk4OTk5ODUtZTUyMC00NGE1LTljNDYtZjI4MTg3ZTg2ZDU0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEzVDIyMTc1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY4MDkyOTBhNTliZmNlNmEwZDg3N2Y5MmY0M2U2ZWZhZDA5YzU1ZThkOTgzYzE4MWNmYjAwMTE2MWY0M2MwMzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.-NVWNb1Ft_f0zotAMgy3kJI16A-sEPxyChJUVpTwW0Y)
- El vendedor será capaz de agregar un nuevo producto a la lista.
- Podrá eliminar/modificar un producto seleccionado.
- Será capaz de reponer productos si hay stock en 0 de algún producto, simulando una reposición en tiempo real, utilizando delegados, eventos, hilos y concurrencia.
- Para ver los cambios de la reposición se le facilitará ir refrescando el datagridview.
- A su vez, se podrá generar una copia de seguridad de la lista actual si lo requiere, esta se guarda en formato XML para luego ser deserializada y mostrada en el form correspondiente.
- Al pararse sobre el icono 'Ayuda/Call-Center' abajo a la izquierda, imprime un mensaje de ayuda para el usuario.
![Screenshot_100](https://private-user-images.githubusercontent.com/98594436/247384891-e093fab6-914a-4ee3-8a7f-7bd35e4cc4b3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1ODc3NzAsIm5iZiI6MTcyMzU4NzQ3MCwicGF0aCI6Ii85ODU5NDQzNi8yNDczODQ4OTEtZTA5M2ZhYjYtOTE0YS00ZWUzLThhN2YtN2JkMzVlNGNjNGIzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEzVDIyMTc1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJhY2E4ZGIxYTkxNTRhNDMyYTNlMTAwYmI2YWI3YmFlMzgwZTFlOWFlMjJmMmQxYmI2OGY3ZTY2NTNmOWNlYjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.kTxKm0eTPtkir5iNQkZAYGctYAt2vQUbpJqJ7SIwAbE)
- Podrá seleccionar una factura/ticket y visualizar su detalle.
- Se utilizo txt.
- Al pararse sobre el icono 'Ayuda/Call-Center' abajo a la izquierda, imprime un mensaje de ayuda para el usuario.
![Screenshot_101](https://private-user-images.githubusercontent.com/98594436/247385239-05056bec-cfaa-4513-9629-3ac54fb6247a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1ODc3NzAsIm5iZiI6MTcyMzU4NzQ3MCwicGF0aCI6Ii85ODU5NDQzNi8yNDczODUyMzktMDUwNTZiZWMtY2ZhYS00NTEzLTk2MjktM2FjNTRmYjYyNDdhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEzVDIyMTc1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWVmZWJlMDY5MjZkOGY3YjBiNTQ5YTI2MWQxODkzNWEzYTJiNWQyMzg2MDc1MTdiYWVkM2FlZDQyMzMyNzZiZTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.0SDMaqJ7pGJtFtUpsYp-qph2mRjHrbI-my42eebX1hk)
- Será capaz de ver aquellos tickets guardados pero en este caso utilizando serialización y deserialización en XML y JSON.
- Aquellas ventas realizadas por el perfil del VENDEDOR fueron serializadas y deserializadas en JSON.
- Y las compras realizadas bajo el perfil de CLIENTE serán serializadas y deserializadas en XML.
- Al pararse sobre el icono 'Ayuda/Call-Center' abajo a la izquierda, imprime un mensaje de ayuda para el usuario.
![Screenshot_118](https://private-user-images.githubusercontent.com/98594436/250671406-ff235939-52e4-463a-ac71-a5b093a7beb5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1ODc3NzAsIm5iZiI6MTcyMzU4NzQ3MCwicGF0aCI6Ii85ODU5NDQzNi8yNTA2NzE0MDYtZmYyMzU5MzktNTJlNC00NjNhLWFjNzEtYTViMDkzYTdiZWI1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEzVDIyMTc1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYxOTczNmNmY2Q3YTBhMGUxY2UyY2ZlZDM5ZmRlMTkyOThkYzdjZjk5ZjNkNWE2MDE1NTMzMmI5MDEwMTgxNzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.vGRr19YGOd5cMLqr17HUwpIviXKOxDMa1He7tHln7Io)
- Le permitirá al usuario visualizar la última copia de seguridad realizada por el vendedor.
![Screenshot_102](https://private-user-images.githubusercontent.com/98594436/247385769-2eae6e8b-8068-410a-b67f-a249972c754e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1ODc3NzAsIm5iZiI6MTcyMzU4NzQ3MCwicGF0aCI6Ii85ODU5NDQzNi8yNDczODU3NjktMmVhZTZlOGItODA2OC00MTBhLWI2N2YtYTI0OTk3MmM3NTRlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEzVDIyMTc1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUzMzEwOWVjZTUzODllZDA0MGVhMjA5MjRlMTI3YmJjZmIwZmIzODAzMjc5ODg0NThjNTY0NTBkMDE1YTk0OGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.z6FKB9IRVlMl_x1a6Tn2-3Z4LIZpHGmeGn9Q-esXxMs)
- El cliente deberá de ingresar su método de pago.
- Solo contará con una única opción de pago por el momento.
- Se validarán los datos ingresados para no tener errores.
- Por último, si pasa las validaciones es redireccionado a un formulario de Compra.
- Al pararse sobre el icono 'Ayuda/Call-Center' abajo a la izquierda, imprime un mensaje de ayuda para el usuario.
![Screenshot_103](https://private-user-images.githubusercontent.com/98594436/247385898-08c834e6-0ca5-4967-8117-73d7aff308b8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1ODc3NzAsIm5iZiI6MTcyMzU4NzQ3MCwicGF0aCI6Ii85ODU5NDQzNi8yNDczODU4OTgtMDhjODM0ZTYtMGNhNS00OTY3LTgxMTctNzNkN2FmZjMwOGI4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEzVDIyMTc1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJhMTZlZjVhYTRlYTJkN2Q1ODMzNGY0ZDgzOTFlZjUwZTljNWMzYzAxY2EyMTlhOWU0OWM4ZGUxNWJiYmEwMTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.IsIZK_IgCougo5L4P6-1srVYwZV-WzzYOv2s3h-SM10)
- El cliente podrá comprar un producto disponible de la carnicería.
- Se mostraran algunos datos, como su billetera que mostrará con que paga,el máximo disponible y el saldo que le va quedando al comprar.
- Podrá filtrar el corte de carne que requiera para agilizar la busqueda.
- Al presionar el botón 'Comprar' se realizarán las validaciones necesarias y si puede compra.
- Si presiona 'Cancelar' eliminará todos los productos del carrito.
- Al pararse sobre el icono 'Ayuda/Call-Center' abajo a la izquierda, imprime un mensaje de ayuda para el usuario.
![DiagramaDeClases](https://private-user-images.githubusercontent.com/98594436/249633846-2b1033d6-c122-4f70-9bb2-05871901e732.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM1ODc3NzAsIm5iZiI6MTcyMzU4NzQ3MCwicGF0aCI6Ii85ODU5NDQzNi8yNDk2MzM4NDYtMmIxMDMzZDYtYzEyMi00ZjcwLTliYjItMDU4NzE5MDFlNzMyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEzVDIyMTc1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIwMzczODhmZTY4MmY1MjRiYzM2ZTFjNTNiYmI4N2JmMDczZTViYmVkOWE4Mzg1YmU2YmQ4YTVjODQ3MDg5OTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.bVX7clEq_d8ekzXGSW6EWme5FoRbJJCMfkch_ujN84Q)
La aplicación cuenta con 6 clases de Unit Testings sobre métodos de SQL y Deserialización.
Lanzar y atrapar las excepciones propias.
Hay uno de los metodos de la interfaz que implementa codigo y no debe de pasar.