(function () {
    "use strict";

    angular.module('pos').factory('vendedorService', factory);
    factory.$inject = ['$http', '$q'];

    function factory($http, $q) {
        var _getAll = function () {
            var deferred = $q.defer();

            $http.get('/vendedor/getall')
                .success(function (data) {
                    deferred.resolve(data);
                })
                .error(function (data, status, headers, config) {
                    deferred.reject(data);
                });

            return deferred.promise;
        };
        var _getVendedoresVolante = function () {
            var deferred = $q.defer();

            $http.post('/vendedor/getvendedoresvolante')
                .success(function (data) {
                    deferred.resolve(data);
                })
                .error(function (data, status, headers, config) {
                    deferred.reject(data);
                });

            return deferred.promise;
        };
        var _saveVendedoresVolante = function (vendedores) {
            var deferred = $q.defer();

            var args = { 'vendedores': vendedores }
            $http.post('/vendedor/saveVendedoresVolante', args)
                .success(function (data) {
                    deferred.resolve(data);
                })
                .error(function (data, status, headers, config) {
                    deferred.reject(data);
                });

            return deferred.promise;
        };

        var _ValidateToken = function (token, vendedor) {
            var deferred = $q.defer();
            var args = { 'token': token, 'vendedor': vendedor }
            $http.post('/vendedor/ValidateToken', args)
                .success(function (data) {
                    deferred.resolve(data);
                })
                .error(function (data, status, headers, config) {
                    deferred.reject(data);
                });

            return deferred.promise;
        };
        var _get = function (codigo) {
            var deferred = $q.defer();
            var args = { 'codigo': codigo }
            $http.post('/vendedor/get', args)
                .success(function (data) {
                    deferred.resolve(data);
                })
                .error(function (data, status, headers, config) {
                    deferred.reject(data);
                });

            return deferred.promise;
        };

        return {
            getAll: _getAll,
            get: _get,
            getVendedoresVolante: _getVendedoresVolante,
            saveVendedoresVolante: _saveVendedoresVolante,
            ValidateToken: _ValidateToken
        };
    }

})();