app.factory('cadastroFactory', function ($http) {
    var url = '../api/cadastro/';
    var url_alteracao = '../api/codalteracao/';
    var url_inv_alteracao = '../api/inventarioalteracao/';
    var url_aquisicao = '../api/codaquisicao/';
    var url_tipodespesa = '../api/tipodespesa/';
    var url_inv_aquisicao = '../api/inventarioaquisicao/';
    var url_inv_abate = '../api/inventarioabate/';
    var url_imagem = '../api/imagens/';
    var url_classsificacao = '../api/classificacao/';
    var url_loc = '../api/cadastroloc/';
    var url_classsificacao_ec = '../api/cleconomica/';
    var url_classsificacao_patri = '../api/clpatrimonial/';

    return {
        getCadastros: function (p,s,opcoes) {
            
            if (p == null)
                p = 0;
            if (s == null)
                s = "";
            var abates = false;
            var pordata = false;
            var datai = "";
            var dataf = "";
            var pornumero = false;
            var ninicial = "";
            var nfinal = "";
            var total = 50;
            var nomegestor = null;
            if (opcoes != null)
            {
                abates = opcoes.abates;
                pordata = opcoes.pordata;
                datai = opcoes.datai;
                dataf = opcoes.dataf;
                pornumero = opcoes.pornumero
                ninicial = opcoes.ninicial;
                nfinal = opcoes.nfinal;
                total = opcoes.n;
                nomegestor = opcoes.gestor;
            }
                
            
            return $http({
                url: url,
                method: "GET",
                params: {
                    n: total,
                    pos: p,
                    search: s,
                    ab: abates,
                    pdata: pordata,
                    di: datai,
                    df: dataf,
                    pnumero: pornumero,
                    ni: ninicial,
                    nf: nfinal,
                    gestor: nomegestor
                },
            })
        },

        getCadastrosId: function (cadastro) {
            
            //return $http.get(url + cadastro.Pk_Inventario);
            return $http({
                url: url + cadastro.Pk_Inventario,
                method: "GET",
                cache:false
            })
           
        },
        getCadastrosLocalizacao: function (e,p,s,locCompleto,pos,limitePorPagina) {
            //limitePorPagina se igual a -1, não há limite
            if (limitePorPagina == null)
                limitePorPagina=50
            if (e == null)
                e = 0;
            if (p == null)
                p = 0;
            if (s == null)
                s = 0;
            if (pos == null)
                pos = 0;
            if (locCompleto == null)
                locCompleto = true;

            return $http({
                url: url_loc,
                method: "GET",
                params: { ed: e, pi: p, sa: s, lcomp: locCompleto, pos: pos, n: limitePorPagina },
            })
        },
        addCadastro: function (cadastro) {
           
            
            return $http({
                cache: false,
                url: url,
                method: "POST",
                data: cadastro,
                params: {
                    n: cadastro.NumRepetir
                }
            })
        },
        duplicaCadastro: function (cadastro) {

            return $http({
                cache: false,
                url: "../api/duplicainv",
                method: "POST",
                data: cadastro,
                params:{ n:cadastro.NumRepetir}
            })
        },
        deleteCadastro: function (cadastro) {
            //return $http.delete(url + cadastro.Pk_Inventario);
            return $http({
                url: url + cadastro.Pk_Inventario,
                method: "DELETE",
                params: { ninv: cadastro.NumInventario,}
            })
           
        },
        updateCadastro: function (cadastro) {
            
            return $http.put(url + cadastro.Pk_Inventario, cadastro);
        },


        getAbates: function () {
            return $http.get('../api/abate/');
        },

        getMotivoAbates: function () {
            return $http.get('../api/abate/motivoabate');
        },

        getCodAlteracao: function () {
            
            return $http.get(url_alteracao);
        },

        getCodAquisicao: function () {

            return $http.get(url_aquisicao);
        },

        getInventarioAlteracao: function (Fk_Inventario) {
            
            return $http.get(url_inv_alteracao + Fk_Inventario);
        },
        addInventarioAlteracao: function (alteracao) {


            return $http({
                cache: false,
                url: url_inv_alteracao,
                method: "POST",
                data: alteracao,

            })
        },
        deleteInventarioAlteracao: function (alteracao) {
            //return $http.delete(url_inv_alteracao + alteracao.Pk_InventarioAlteracao);

            return $http({
                url: url_inv_alteracao + alteracao.Pk_InventarioAlteracao,
                method: "DELETE",
                params: { idinv: alteracao.Fk_Inventario, }
            })
        },
        updateInventarioAlteracao: function (alteracao) {
            return $http.put(url_inv_alteracao + alteracao.Pk_InventarioAlteracao, alteracao);
        },

        getTipoDespesa: function () {
            return $http.get(url_tipodespesa);
        },

        getInventarioAquisicao: function (Fk_Inventario) {

            return $http.get(url_inv_aquisicao + Fk_Inventario);
        },

        updateInventarioAquisicao: function (aq) {
            return $http.put(url_inv_aquisicao + aq.Pk_InventarioAquisicao, aq);
        },

        getInventarioAbate: function (Fk_Inventario) {

            return $http.get(url_inv_abate + Fk_Inventario);
        },

        updateInventarioAbate: function (a) {
            return $http.put(url_inv_abate + a.Pk_InventarioAbate, a);
        },
    
        getImagem: function (FK_Imagem) {

            return $http.get(url_imagem + FK_Imagem);
        },

        getClassificacoes: function () {

            return $http.get(url_classsificacao);
        },
        getClassificacoesID: function (id) {

            return $http.get(url_classsificacao+id);
        },
        getClassificacoesEconomicas: function () {

            return $http.get(url_classsificacao_ec);
        },
        getClassificacoesPatri: function () {

            return $http.get(url_classsificacao_patri);
        },
    };
});

