﻿function InicializarServicio() {

    var solicitudUsuarioWeb = {
        CriterioUsuarioWeb: { Usuario: "", Contrasenia: "" },
        DTOSerializado: ''
    };
    solicitudUsuarioWeb.CriterioUsuarioWeb.Usuario = 11111;
    solicitudUsuarioWeb.CriterioUsuarioWeb.Contrasenia = 1111;        
    WebSiteServiceProxy.invoke({ serviceMethod: "BuscarUsuario",
        data: { solicitudUsuarioWeb: solicitudUsuarioWeb },
        callback: function(respuesta) {
			//alert('Bienvenido al Sitio Web de Jerarquicos Salud.');
        }
    });
}

function ProvinciasArgentinas() {

    var solicitudProvincia = {
        CriterioProvincia: {},
        DTOSerializado: ''
    };

    WebSiteServiceProxy.invoke({ serviceMethod: "ProvinciasArgentinas",
        data: { solicitudProvincia: solicitudProvincia },
        callback: function(respuesta) {
            CargarProvincias(respuesta);
            $.unblockUI();
        },
        error: function(xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}

function LocalidadesDeUnaProvincia(idProvincia) {

    if (null == idProvincia) {
        showErrorMsg('Debe seleccionar una provincia.');
        return;
    }

    var solicitudLocalidad = {
        CriterioLocalidad: { IdProvincia: 0 },
        DTOSerializado: ''
    };

    wjBlockUI('Cargando Localidades...');

    solicitudLocalidad.CriterioLocalidad.IdProvincia = idProvincia;

    WebSiteServiceProxy.invoke({ serviceMethod: "LocalidadesDeUnaProvincia",
        data: { solicitudLocalidad: solicitudLocalidad },
        callback: function(respuesta) {
            CargarLocalidades(respuesta);
            $.unblockUI();
        },
        error: function(xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}

function BuscarAutorizacionesDeSocio(nroSocio) {

    var solicitudAutorizacion = {
        CriterioAutorizacion: { NroSocio: 0, IdAutorizacion: 0 },
        DTOSerializado: ''
    };

    solicitudAutorizacion.CriterioAutorizacion.NroSocio = nroSocio;
    
    WebSiteServiceProxy.invoke({ serviceMethod: "BuscarAutorizacionesDeSocio",
        data: { solicitudAutorizacion: solicitudAutorizacion },
        callback: function(respuesta) {
            CargarAutorizacionesDeSocio(respuesta);
            $.unblockUI();
        },
        error: function(xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}

function BuscarUsuario(usuario, contrasenia) {
    
	
	wjBlockUI();
    var solicitudUsuarioWeb = {
        CriterioUsuarioWeb: { Usuario: "", Contrasenia: "" },
        DTOSerializado: ''
    };

    solicitudUsuarioWeb.CriterioUsuarioWeb.Usuario = usuario;
    solicitudUsuarioWeb.CriterioUsuarioWeb.Contrasenia = contrasenia;
        
    WebSiteServiceProxy.invoke({ serviceMethod: "BuscarUsuario",
        data: { solicitudUsuarioWeb: solicitudUsuarioWeb },
        callback: function(respuesta) {
            CargarUsuarioWeb(respuesta);
            $.unblockUI();
        },
        error: function(xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}

function RegistrarUsuario (numSocio, numDocumento, email, contrasenia) {
    var solicitudUsuarioWeb = {
        CriterioUsuarioWeb: { Usuario: "", NumeroDocumento: "", Email: "", Contrasenia: ""},
        DTOSerializado: ''
    };

    solicitudUsuarioWeb.CriterioUsuarioWeb.Usuario = numSocio;
    solicitudUsuarioWeb.CriterioUsuarioWeb.NumeroDocumento = numDocumento;
    solicitudUsuarioWeb.CriterioUsuarioWeb.Email = email;
    solicitudUsuarioWeb.CriterioUsuarioWeb.Contrasenia = contrasenia;
    
    WebSiteServiceProxy.invoke({ serviceMethod: "RegistrarUsuario",
        data: { solicitudUsuarioWeb: solicitudUsuarioWeb },
        callback: function(respuesta) {
            MostrarNuevoUsuarioWeb(respuesta);
            $.unblockUI();
        },
        error: function(xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}

function ObtenerCuentaCorrienteResumida(idPersona) {
    var solicitudCuentaCorriente = {
        CriterioCuentaCorriente: { IdPersona: ""},
        DTOSerializado: ''
    };

    wjBlockUI('Cargando resumen de cuenta corriente...');
    
    solicitudCuentaCorriente.CriterioCuentaCorriente.IdPersona = idPersona;

    WebSiteServiceProxy.invoke({ serviceMethod: "ObtenerCuentaCorrienteResumida",
        data: { solicitudCuentaCorriente: solicitudCuentaCorriente },
        callback: function(respuesta) {
            MostrarResumenCuentaCorriente(respuesta);
            $.unblockUI();
        },
        error: function(xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}

function ObtenerCuentaCorrienteDetallada(idPersona, mes, anio) {
    var solicitudCuentaCorriente = {
        CriterioCuentaCorriente: { IdPersona: "", Mes: 0, Anio: 0 },
        DTOSerializado: ''
    };

    wjBlockUI('Cargando datalle...');

    solicitudCuentaCorriente.CriterioCuentaCorriente.IdPersona = idPersona;
    solicitudCuentaCorriente.CriterioCuentaCorriente.Mes = mes;
    solicitudCuentaCorriente.CriterioCuentaCorriente.Anio = anio;

    WebSiteServiceProxy.invoke({ serviceMethod: "ObtenerCuentaCorrienteDetallada",
        data: { solicitudCuentaCorriente: solicitudCuentaCorriente },
        callback: function(respuesta) {
            MostrarDetalleCuentaCorriente(respuesta);
            $.unblockUI();
        },
        error: function(xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}

function ObtenerCuentaCorrienteDetalladaPorFormaDePago(idPersona, mes, anio, IdFormaDePago) {
    var solicitudCuentaCorriente = {
        CriterioCuentaCorriente: { IdPersona: "", Mes: 0, Anio: 0,IdFormaDePago: 0 },
        DTOSerializado: ''
    };

    wjBlockUI('Cargando datalle...');

    solicitudCuentaCorriente.CriterioCuentaCorriente.IdPersona = idPersona;
    solicitudCuentaCorriente.CriterioCuentaCorriente.Mes = mes;
    solicitudCuentaCorriente.CriterioCuentaCorriente.Anio = anio;
    solicitudCuentaCorriente.CriterioCuentaCorriente.IdFormaDePago = IdFormaDePago;

    WebSiteServiceProxy.invoke({ serviceMethod: "ObtenerCuentaCorrienteDetalladaPorFormaDePago",
        data: { solicitudCuentaCorriente: solicitudCuentaCorriente },
        callback: function (respuesta) {
            MostrarDetalleCuentaCorriente(respuesta);
            $.unblockUI();
        },
        error: function (xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}

function ObtenerDetalleCompra(idCtaCte) {
    var solicitudFacturacionFarmacia = {
        CriterioFacturacionFarmacia: { IdCuentaCorriente: 0 },
        DTOSerializado: ''
    };

    wjBlockUI('Cargando detalle de la compra...');

    solicitudFacturacionFarmacia.CriterioFacturacionFarmacia.IdCuentaCorriente = idCtaCte;

    WebSiteServiceProxy.invoke({ serviceMethod: "ObtenerDetalleCompra",
        data: { solicitudFacturacionFarmacia: solicitudFacturacionFarmacia },
        callback: function(respuesta) {
            MostrarDetalleCompra(respuesta);
            $.unblockUI();
        },
        error: function(xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}

function ObtenerDetalleCoseguro(idCtaCte) {
    var solicitudCoseguroDeAntecedente = {
        CriterioCoseguroDeAntecedente: { IdCuentaCorriente: 0 },
        DTOSerializado: ''
    };

    wjBlockUI('Cargando detalle de coseguro...');

    solicitudCoseguroDeAntecedente.CriterioCoseguroDeAntecedente.IdCuentaCorriente = idCtaCte;

    WebSiteServiceProxy.invoke({ serviceMethod: "ObtenerDetalleCoseguro",
        data: { solicitudCoseguroDeAntecedente: solicitudCoseguroDeAntecedente },
        callback: function(respuesta) {
            MostrarDetalleCoseguro(respuesta);
            $.unblockUI();
        },
        error: function(xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}

function ObtenerPagaAOtros(idPersona, idFormaDePago, mes, anio) {
    var solicitudPagaAOtros = {
        CriterioPagaAOtros: { IdPersona: 0, IdFormaDePago: 0, Mes: 0, Anio: 0 },
        DTOSerializado: ''
    };

    solicitudPagaAOtros.CriterioPagaAOtros.IdPersona = idPersona;
    solicitudPagaAOtros.CriterioPagaAOtros.IdFormaDePago = idFormaDePago;
    solicitudPagaAOtros.CriterioPagaAOtros.Mes = mes;
    solicitudPagaAOtros.CriterioPagaAOtros.Anio = anio;

    WebSiteServiceProxy.invoke({ serviceMethod: "ObtenerPagaAOtros",
        data: { solicitudPagaAOtros: solicitudPagaAOtros },
        callback: function(respuesta) {
            MostrarPagaAOtros(respuesta);
            $.unblockUI();
        },
        error: function(xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}


//******************************************
//*************ENCUESTA*********************
//******************************************


function BuscarEncuesta(pId) {

	wjBlockUI();
    var solicitudEncuesta = {
        CriterioEncuesta: { id: 0}, 
        DTOSerializado: ''
    };

    solicitudEncuesta.CriterioEncuesta.id = pId;

    WebSiteServiceProxy.invoke({ serviceMethod: "BuscarEncuesta",
        data: { solicitudEncuesta: solicitudEncuesta },
        callback: function (respuesta) {
            CargarEncuesta(respuesta);
            $.unblockUI();
            //return respuesta;
        },
        error: function (xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}



function BuscarEncuestaContestada(per_idesec) {

    var solicitudEncuestaContestada = {
        CriterioEncuestaContestada: { IdPersona: 0, IdEncuesta: 1 },
        DTOSerializado: ''
    };

    solicitudEncuestaContestada.CriterioEncuestaContestada.IdPersona = per_idesec;
    //solicitudEncuestaContestada.CriterioEncuestaContestada.IdEncuesta = 1;
    WebSiteServiceProxy.invoke({ serviceMethod: "BuscarEncuestaContestada",
        data: { solicitudEncuestaContestada: solicitudEncuestaContestada },
        callback: function (respuesta) {
            VerificarEncuesta(respuesta);
        },
        error: function (xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
}


function GrabarEncuestaContestada(encuestaContestadaDTO) {

    var solicitudEncuestaContestada = {
        CriterioEncuestaContestada: { IdPersona: 0, IdEncuesta: 0 },
        DTOSerializado: ''
    };

    solicitudEncuestaContestada.CriterioEncuestaContestada.IdPersona = 51430;
    solicitudEncuestaContestada.CriterioEncuestaContestada.IdEncuesta = 1;
    solicitudEncuestaContestada.DTOSerializado = JSON2.stringify(encuestaContestadaDTO);
    //solicitudEncuestaContestada.DTOSerializado = '{"$type": "WebSite.DTO.EncuestaContestada.EncuestaContestadaDTOPlano, WebSite.DTO", "IdEncuesta": 1,  "IdPersona": 51430,  "Fecha": "\/Date(1312167600000-0300)\/",  "PreguntasContestadas": {"$type": "System.Collections.Generic.List`1[[WebSite.DTO.PreguntaContestada.PreguntaContestadaDTOPlano, WebSite.DTO, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib", "$values": [{"$type": "WebSite.DTO.PreguntaContestada.PreguntaContestadaDTOPlano, WebSite.DTO", "Id": 1, "IdPregunta": 1,"IdRespuesta": 1, "Observacion": "obs1"},{"$type": "WebSite.DTO.PreguntaContestada.PreguntaContestadaDTOPlano, WebSite.DTO","Id": 2,"IdPregunta": 2,"IdRespuesta": 2,"Observacion": "obs2"},{"$type": "WebSite.DTO.PreguntaContestada.PreguntaContestadaDTOPlano,WebSite.DTO","Id": 3,"IdPregunta": 3,"IdRespuesta": 1,"Observacion": "obs3"}]}}';
    WebSiteServiceProxy.invoke({ serviceMethod: "GrabarEncuestaContestada",
        data: { solicitudEncuestaContestada: solicitudEncuestaContestada },
        callback: function (respuesta) {
            if (respuesta.DTOSerializado == null) {
                MostrarError(); 
            } else {
                MostrarSaludoFinal();
            }
        },
        error: function (xhr, errorMsg, thrown) {
            postErrorAndUnBlockUI(xhr, errorMsg, thrown);
        }
    });
    
}
