using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using TrazaMedLib;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Realiza el registro de una transacción de medicamento.
            // El usuario (laboratorio/droguería/operador logístico/farmacia) informa el evento ocurrido para cada uno de los medicamentos.


            TrazaMed trazamedObj = new TrazaMed();
            medicamentosDTO med = new medicamentosDTO();
    
            trazamedObj.modo_produccion = false;
            trazamedObj.LogTransaction("Request.xml", "Response.xml"); //Deja un log de cada transaccion en los archivos.
    
            trazamedObj.usuario = "pruebasws";
            trazamedObj.password = "Clave1234";
    
            med.f_evento = "24/04/2012";
            med.h_evento = "04:24";
            med.gln_origen = "9999999999918";
            med.gln_destino = "glnws";
            med.n_remito = "R000100000001";
            med.n_factura = "F000100000001";
            med.vencimiento = "30/12/2011";
            med.gtin = "GTIN2";
            med.lote = "11113";
            med.numero_serial = "8623344444223468698";  // Cambiar este valor si recibe error que ya fue informado el medicamento.
            med.id_obra_social = "600309";
            med.id_evento = 156;
            med.cuit_origen = "20939802593";
            med.cuit_destino = "20929007862";
            med.apellido = "Abel";
            med.nombres = "Miranda";
            med.tipo_documento = 96;
            med.n_documento = "93980259";
            med.sexo = "M";
            med.direccion = "Blanco Encalada";
            med.numero = "1234";
            med.piso = "";
            med.dpto = "";
            med.localidad = "Capital Federal";
            med.provincia = "Buenos Aires";
            med.n_postal = "1428";
            med.fecha_nacimiento = "01/01/2000";
            med.telefono = "5555-5555";
    
            trazamedObj.AgregaMedicamento(med);
            if (!trazamedObj.SendMedicamentos())
            {
                MessageBox.Show(trazamedObj.Errores);
            }
            else
            {
                MessageBox.Show("Transacción exitosa! Id de transacción: " + trazamedObj.id_transaccion);
            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            TrazaMed trazamedObj = new TrazaMed();
    
            trazamedObj.modo_produccion = false;
            trazamedObj.LogTransaction("Request.xml", "Response.xml"); //Deja un log de cada transaccion en los archivos.
    
            trazamedObj.usuario = "pruebasws";
            trazamedObj.password = "Clave1234";
    
            if (!trazamedObj.SendCancelaTransacc("1234"))
              MessageBox.Show(trazamedObj.Errores);
            else
              MessageBox.Show("Transacción exitosa! Id de transacción: " + trazamedObj.id_transaccion);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            TrazaMed trazamedObj = new TrazaMed();
            TransaccionPlainWS transacciones = new TransaccionPlainWS();
    
            trazamedObj.modo_produccion = false;
            trazamedObj.LogTransaction("Request.xml", "Response.xml"); // Deja un log de cada transaccion en los archivos.
    
            trazamedObj.usuario = "pruebasws";
            trazamedObj.password = "Clave1234";
    
            if (!trazamedObj.GetTransaccionesNoConfirmadas(0, "", "", "9999999999918", "", 0, "", "", "", "", "", "", "", "", 0, "", "", 0, 20, transacciones)) 
              MessageBox.Show(trazamedObj.Errores);
            else
              if (transacciones.count == 0) 
                MessageBox.Show("No hay transacciones pendientes de confirmación");
              else {
                string msg = "";
                for (int i = 1; i < transacciones.count; i++) {
                   msg = msg + transacciones.id_transaccion + "\n";
                   transacciones.index = transacciones.index + 1;
                }
                MessageBox.Show("Hay " + transacciones.count.ToString() + " transacciones pendientes de confirmación pagina 1 de " + transacciones.cantPaginas.ToString() + "\n"+ msg);
              }
        }

        private void button4_Click(object sender, EventArgs e)
        {

            // Realiza el registro de una transacción de medicamento.
            // Se envía por cada GTIN, el número de serie desde y número de serie hasta.
            // Es utilizado para números de serie lineales numéricos consecutivos.
    
    
            TrazaMed trazamedObj = new TrazaMed();
            medicamentosDTOdhSerie med = new medicamentosDTOdhSerie();
    
            trazamedObj.modo_produccion = false;
            trazamedObj.LogTransaction("Request.xml", "Response.xml"); //Deja un log de cada transaccion en los archivos.
    
            trazamedObj.usuario = "pruebasws";
            trazamedObj.password = "Clave1234";
    
            med.f_evento = "24/04/2012";
            med.h_evento = "04:24";
            med.gln_origen = "9999999999918";
            med.gln_destino = "glnws";
            med.n_remito = "R000100000001";
            med.n_factura = "F000100000001";
            med.vencimiento = "30/12/2011";
            med.gtin = "GTIN2";
            med.lote = "11113";
            med.desde_numero_serial = "862334444422349";  // Cambiar este valor si recibe error que ya fue informado el medicamento.
            med.hasta_numero_serial = "862334444422350";  // Cambiar este valor si recibe error que ya fue informado el medicamento.
            med.id_obra_social = 600309;
            med.id_evento = 156;
            med.cuit_origen = "20939802593";
            med.cuit_destino = "20929007862";
            med.apellido = "Abel";
            med.nombres = "Miranda";
            med.tipo_documento = "96";
            med.n_documento = "93980259";
            med.sexo = "M";
            med.direccion = "Blanco Encalada";
            med.numero = "1234";
            med.piso = "";
            med.dpto = "";
            med.localidad = "Capital Federal";
            med.provincia = "Buenos Aires";
            med.n_postal = "1428";
            med.fecha_nacimiento = "01/01/2000";
            med.telefono = "5555-5555";
    
            trazamedObj.AgregaMedicamentoDHSerie(med);
            if (!trazamedObj.sendMedicamentosDHSerie()) 
              MessageBox.Show(trazamedObj.Errores);
            else
              MessageBox.Show(trazamedObj.id_transaccion);
        }

        private void button5_Click(object sender, EventArgs e)
        {
            TrazaMed trazamedObj = new TrazaMed();
    
            trazamedObj.modo_produccion = false;
            trazamedObj.LogTransaction("Request.xml", "Response.xml"); // Deja un log de cada transaccion en los archivos.
    
            trazamedObj.usuario = "pruebasws";
            trazamedObj.password = "Clave1234";
    
            if (!trazamedObj.SendAlertaTransacc("12345"))
              MessageBox.Show(trazamedObj.Errores);
            else
              MessageBox.Show("Transacción exitosa! Id de transacción: " + trazamedObj.id_transaccion);
        }

        private void button6_Click(object sender, EventArgs e)
        {
            TrazaMed trazamedObj = new TrazaMed();
    
            trazamedObj.modo_produccion = false;
            trazamedObj.LogTransaction("Request.xml", "Response.xml"); //Deja un log de cada transaccion en los archivos.
    
            trazamedObj.usuario = "pruebasws";
            trazamedObj.password = "Clave1234";
    
            if (!trazamedObj.SendConfirmaTransacc("10/03/2016", "12345"))
              MessageBox.Show(trazamedObj.Errores);
            else
              MessageBox.Show("Transacción exitosa! Id de transacción: " + trazamedObj.id_transaccion);
        }

        private void button7_Click(object sender, EventArgs e)
        {
            TrazaMed trazamedObj = new TrazaMed();
    
            ConsultaStockWSResult stock = new ConsultaStockWSResult();

            trazamedObj.modo_produccion = false;
            trazamedObj.LogTransaction("Request.xml", "Response.xml"); // Deja un log de cada transaccion en los archivos.

            trazamedObj.usuario = "pruebasws";
            trazamedObj.password = "Clave1234";

            if (trazamedObj.getConsultaStock("", "", "", 0, "", "", "", 1, 10, stock)) {
              if (stock.count == 0) 
                MessageBox.Show("No hay resultados en la consulta");
              else
                // Propiedades de stock en
                // http://bitingenieria.com.ar/doc/trazamedlib/TrazaMedLib_TLB/IConsultaStockWSResult.html
                MessageBox.Show("Hay " + stock.count.ToString() + " registros de stock pagina 1 de " + stock.cantPaginas.ToString());           
            } else {
              MessageBox.Show(trazamedObj.Errores);
            }
        }
    }
}
