Esempio n. 1
0
        private void deshabilitarEmisor(int Rut, bdConexion conexion, Respuesta resp, log logs)
        {
            try
            {
                string sql = "UPDATE EMPR SET INDI_WSS = 'N' WHERE RUTT_EMPR = {0} ";

                if (conexion.EjecutaNonQuery(String.Format(sql, Rut)) == 0)
                {
                    resp.SCodigo  = ERROR_DESHABILITAR_RUT_RECE;
                    resp.SMensaje = "No se pudo deshabilitar Rut en emisores";
                    logs.putLog(1, "-- No se pudo deshabilitar Rut en emisores");
                }
                else
                {
                    conexion.confirma();
                    resp.SCodigo  = CONSULTA_OK;
                    resp.SMensaje = "Se hdesabilita Rut en emisores";
                    logs.putLog(1, "-- Se hdesabilita Rut en emisores");
                }
            }
            catch (Exception ex)
            {
                logs.putLog(1, "Proceso: deshabilitarEmisor");
                logs.putLog(1, "Error: " + Convert.ToString(ex.Message));
            }
        }
Esempio n. 2
0
        public DTEPendietes entregarDTEPendientes()
        {
            DTEPendietes dtes = new DTEPendietes();
            log          logs = new log();

            logs.nombreLog = "entregarDTEPendientes";
            logs.tipoLog   = Convert.ToInt32(ConfigurationManager.AppSettings["tl"]);

            setEgateHome(000, logs);
            logs.putLog(1, "");
            logs.putLog(1, "INICIO entregarDTEPendientes");

            bdConexion conexion = new bdConexion();

            try
            {
                conexion.egateHome = logs.egateHome;
                conexion.conexionOpen();
                logs.putLog(1, "conexionOpen(): OK");

                int cantDTERecuperar = Int32.Parse(ConfigurationManager.AppSettings["cantDTE"]);
                logs.putLog(1, "Cantidad de DTE a recuperar: " + cantDTERecuperar);

                recuperarDTEs(dtes, cantDTERecuperar, conexion, logs);
                logs.putLog(1, "recuperarDTEs finaliza normalmente");
            }
            catch (Exception ex)
            {
                logs.putLog(1, "Proceso: " + logs.nombreLog);
                logs.putLog(1, "Error: " + Convert.ToString(ex.Message));
            }

            return(dtes);
        }
Esempio n. 3
0
        private void quitarReceptor(int Rut, int digiVeri, string nombre, bdConexion conexion, Respuesta resp, log logs)
        {
            try
            {
                string sql = "INSERT INTO PERSONAS (RUTT_PERS, DGTO_PERS, NOMB_PERS, EMPR_PERS, INDI_WSS) VALUES ({0}, {1}, '{2}', 'S', 'N')";

                if (conexion.EjecutaNonQuery(String.Format(sql, Rut, digiVeri, nombre)) == 0)
                {
                    resp.SCodigo  = ERROR_QUITAR_RUT_RECE;
                    resp.SMensaje = "No se pudo quitar Rut en receptores";
                    logs.putLog(1, "-- No se pudo quitar Rut en receptores");
                }
                else
                {
                    conexion.confirma();
                    resp.SCodigo  = CONSULTA_OK;
                    resp.SMensaje = "Se quita Rut en receptores";
                    logs.putLog(1, "-- Se quita Rut en receptores");
                }
            }
            catch (Exception ex)
            {
                logs.putLog(1, "Proceso: quitarReceptor");
                logs.putLog(1, "Error: " + Convert.ToString(ex.Message));
            }
        }
Esempio n. 4
0
        // Rut -> Boolean
        private static bool existeRutReceptor(int rut)
        {
            string    sql       = string.Empty;
            string    codi_empr = string.Empty;
            DataTable result;

            bdConexion conexion = new bdConexion();

            return(false);
        }
Esempio n. 5
0
        private int cantDTERestantes(string sql, bdConexion conexion)
        {
            string    strCount = string.Empty;
            DataTable result;

            strCount = sql.Replace("select distinct", "select count(*) from (select distinct");
            strCount = strCount.Replace("--cantDTEOracle", " ) ");

            result = conexion.EjecutaSelect(strCount);

            return(Int32.Parse(result.Rows[0][0].ToString()));
        }
Esempio n. 6
0
        private Boolean existeReceptor(int Rut, bdConexion conexion, Respuesta resp, log logs)
        {
            Boolean result       = true;
            string  sql          = "SELECT COUNT(*) FROM PERSONAS WHERE RUTT_PERS = '{0}'";
            int     cantPersonas = Convert.ToInt32(conexion.SelectInto(String.Format(sql, Rut)));

            if (cantPersonas == 0)
            {
                result        = false;
                resp.SMensaje = "Rut no se encuentra";
                logs.putLog(1, "-- Rut no se encuentra");
            }
            return(result);
        }
Esempio n. 7
0
        public Respuesta QuitarRutReceptor(int Rut, int digiVeri, string nombre)
        {
            string sql       = string.Empty;
            string xml       = string.Empty;
            string xmlBase64 = string.Empty;
            string corr_docu = string.Empty;
            string sEmex     = string.Empty;
            string codi_empr = string.Empty;

            Respuesta resp = new Respuesta();

            log logs = new log();

            logs.nombreLog = "QuitarRutReceptor";
            logs.tipoLog   = Convert.ToInt32(ConfigurationManager.AppSettings["tl"]);

            if (!validaRut(Rut, resp, logs))
            {
                return(resp);
            }

            setEgateHome(Rut, logs);

            logs.putLog(1, "");
            logs.putLog(1, "INICIO QuitarRutReceptor");

            bdConexion conexion = new bdConexion();

            try
            {
                conexion.egateHome = logs.egateHome;
                conexion.conexionOpen();

                if (!existeReceptor(Rut, conexion, resp, logs))
                {
                    quitarReceptor(Rut, digiVeri, nombre, conexion, resp, logs);
                }
                else
                {
                    deshabilitarReceptor(Rut, conexion, resp, logs);
                }
            }
            catch (Exception ex)
            {
                logs.putLog(1, "Proceso: " + logs.nombreLog);
                logs.putLog(1, "Error: " + Convert.ToString(ex.Message));
            }
            return(resp);
        }
Esempio n. 8
0
        private Boolean existeEmisor(int Rut, bdConexion conexion, Respuesta resp, log logs)
        {
            Boolean result       = true;
            string  sql          = "SELECT COUNT(*) FROM EMPR WHERE RUTT_EMPR = '{0}'";
            int     cantPersonas = Convert.ToInt32(conexion.SelectInto(String.Format(sql, Rut)));

            if (cantPersonas == 0)
            {
                result        = false;
                resp.SCodigo  = ERROR_EMISOR_INVALIDO_EMIS;
                resp.SMensaje = "No se encuentra Rut del emisor";
                logs.putLog(1, "-- No se encuentra Rut del emisor");
            }
            return(result);
        }
Esempio n. 9
0
        private string getXML(string corrDocu, bdConexion conexion, log logs)
        {
            string xmlResult = string.Empty;
            string xml       = string.Empty;
            string sql       = "select clob_docu from dto_docu_lob where corr_docu = {0} and tipo_arch = 'XML'";

            try
            {
                xml = conexion.SelectText(String.Format(sql, corrDocu));
                xml.Trim();
            }
            catch (Exception ex)
            {
                logs.putLog(1, "Proceso: getXML");
                logs.putLog(1, "Error: " + Convert.ToString(ex.Message));
            }
            return(xml);
        }
Esempio n. 10
0
        private List <Referencia> getRefencias(string corrDocu, bdConexion conexion)
        {
            string            sql = string.Empty;
            DataTable         result;
            List <Referencia> list_refe_temp = new List <Referencia>();

            sql  = " select foli_refe, tipo_refe ";
            sql += " from dto_docu_refe_p ";
            sql += " where corr_docu = {0} ";

            result = conexion.EjecutaSelect(String.Format(sql, corrDocu));
            int dte_num = result.Rows.Count;

            for (int i = 0; i < dte_num; i++)
            {
                string     foliRefe = result.Rows[i][0].ToString();
                string     tipoRefe = result.Rows[i][1].ToString();
                Referencia ref_temp = new Referencia(foliRefe, tipoRefe);
                list_refe_temp.Add(ref_temp);
            }
            return(list_refe_temp);
        }
Esempio n. 11
0
        public Respuesta QuitarRutEmisor(int Rut, int digiVeri, string nombre)
        {
            Respuesta resp = new Respuesta();
            log       logs = new log();

            logs.nombreLog = "QuitarRutEmisor";
            logs.tipoLog   = Convert.ToInt32(ConfigurationManager.AppSettings["tl"]);

            if (!validaRut(Rut, resp, logs))
            {
                return(resp);
            }

            setEgateHome(Rut, logs);

            logs.putLog(1, "");
            logs.putLog(1, "INICIO QuitarRutEmisor");

            bdConexion conexion = new bdConexion();

            try
            {
                conexion.egateHome = logs.egateHome;
                conexion.conexionOpen();

                if (existeEmisor(Rut, conexion, resp, logs))
                {
                    deshabilitarEmisor(Rut, conexion, resp, logs);
                }
            }
            catch (Exception ex)
            {
                logs.putLog(1, "Proceso: " + logs.nombreLog);
                logs.putLog(1, "Error: " + Convert.ToString(ex.Message));
            }

            return(resp);
        }
Esempio n. 12
0
        public Respuesta marcarDTETraspasado(string sCodEmpr, string sTipoDocu, string sFoliDocu, string sRuttEmis)
        {
            Respuesta resp = new Respuesta();
            log       logs = new log();

            logs.nombreLog = "marcarDTETraspasado";
            logs.tipoLog   = Convert.ToInt32(ConfigurationManager.AppSettings["tl"]);

            if (!validaRut(Convert.ToInt32(sRuttEmis), resp, logs))
            {
                return(resp);
            }

            setEgateHome(Convert.ToInt32(sRuttEmis), logs);

            logs.putLog(1, "");
            logs.putLog(1, "INICIO marcarDTETraspasado");

            bdConexion conexion = new bdConexion();

            try
            {
                conexion.egateHome = logs.egateHome;
                conexion.conexionOpen();
                logs.putLog(1, "conexionOpen(): OK");

                marcarDTE(sCodEmpr, sTipoDocu, sFoliDocu, sRuttEmis, conexion, resp, logs);
                logs.putLog(1, "marcarDTE finaliza normalmente");
            }
            catch (Exception ex)
            {
                logs.putLog(1, "Proceso: " + logs.nombreLog);
                logs.putLog(1, "Error: " + Convert.ToString(ex.Message));
            }

            return(resp);
        }
Esempio n. 13
0
        private void marcarDTE(string sCodEmpr, string sTipoDocu, string sFoliDocu, string sRuttEmis, bdConexion conexion, Respuesta resp, log logs)
        {
            try
            {
                string sql = " UPDATE DTO_ENCA_DOCU_P SET ESTA_TRAS = 'TRA' ";
                sql += " WHERE CODI_EMPR = {0} ";
                sql += " AND TIPO_DOCU = {1} ";
                sql += " AND FOLI_DOCU = {2} ";
                sql += " AND RUTT_EMIS = {3} ";

                if (conexion.EjecutaNonQuery(String.Format(sql, sCodEmpr, sTipoDocu, sFoliDocu, sRuttEmis)) == 0)
                {
                    resp.SCodigo  = ERROR_MARCAR_DTE_TRASPASADO;
                    resp.SMensaje = "No se pudo marcar el DTE como traspasado";
                    logs.putLog(1, "-- No se pudo marcar el DTE como traspasado");
                }
                else
                {
                    conexion.confirma();
                    resp.SCodigo  = CONSULTA_OK;
                    resp.SMensaje = "Se marca exitosamente DTE como traspasado";
                    logs.putLog(1, "-- Se marca exitosamente DTE como traspasado");
                }
            }
            catch (Exception ex)
            {
                logs.putLog(1, "Proceso: marcarDTE");
                logs.putLog(1, "Error: " + Convert.ToString(ex.Message));
            }
        }
Esempio n. 14
0
        private void recuperarDTEs(DTEPendietes dtes, int cantDTERecuperar, bdConexion conexion, log logs)
        {
            string    sql = string.Empty;
            DataTable result;

            sql  = " select distinct dto.rutt_rece, dto.digi_rece, dto.rutt_emis, dto.digi_emis, dto.tipo_docu, dto.foli_docu, dto.fech_emis, dto.mont_neto, dto.mont_exen, dto.mont_tota, dto.corr_docu, dto.codi_empr ";
            sql += " FROM dto_enca_docu_p dto ";
            sql += " LEFT OUTER JOIN dto_docu_refe_p ref ON dto.corr_docu=ref.corr_docu ";
            sql += " where dto.esta_docu in ('INI', 'ERA') ";
            sql += " and dto.tipo_docu in ('33','34') ";
            sql += " and dto.esta_tras is null ";
            sql += " and dto.corr_docu not in ( ";
            sql += "     SELECT dto.corr_docu ";
            sql += "     FROM dto_enca_docu_p dto ";
            sql += "     LEFT OUTER JOIN dto_docu_refe_p ref ON dto.corr_docu=ref.corr_docu ";
            sql += "     where dto.esta_docu in ('INI', 'ERA') ";
            sql += "     and dto.tipo_docu in ('33','34') ";
            sql += "     and ref.TIPO_REFE = 803 and ref.foli_refe = 'COM' ";
            sql += " ) --cantDTEOracle ";

            string sqlCantDTE = cantidadDTE(sql, cantDTERecuperar, conexion.baseDatos);

            result = conexion.EjecutaSelect(sqlCantDTE);

            int dte_num = result.Rows.Count;

            logs.putLog(1, "-- Cantidad de DTE a entregar (dte_num): " + dte_num);

            if (dte_num == 0)
            {
                dtes.cantRestantes = 0;
                logs.putLog(1, "-- No hay DTE pendientes por entregar: ");
                logs.putLog(1, "-- cantRestantes: 0");
            }
            else
            {
                for (int i = 0; i < dte_num; i++)
                {
                    string ruttRece = result.Rows[i][0].ToString();
                    string digiRece = result.Rows[i][1].ToString();
                    string ruttEmis = result.Rows[i][2].ToString();
                    string digiEmis = result.Rows[i][3].ToString();
                    string tipoDocu = result.Rows[i][4].ToString();
                    string foliDocu = result.Rows[i][5].ToString();
                    string fechEmis = result.Rows[i][6].ToString();
                    string montNeto = result.Rows[i][7].ToString();
                    string montExen = result.Rows[i][8].ToString();
                    string montTota = result.Rows[i][9].ToString();
                    string corrDocu = result.Rows[i][10].ToString();
                    string codiEmpr = result.Rows[i][11].ToString();

                    List <Referencia> Refencias = new List <Referencia>();
                    Refencias = getRefencias(corrDocu, conexion);
                    string xml = getXML(corrDocu, conexion, logs);

                    string pdf = getPDF(codiEmpr, ruttRece, ruttEmis, tipoDocu, foliDocu, logs);

                    Documento dte_temp = new Documento(ruttRece, digiRece, ruttEmis, digiEmis, tipoDocu, foliDocu, fechEmis, montNeto, montExen, montTota, xml, pdf, Refencias);
                    dtes.DTE.Add(dte_temp);

                    logs.putLog(1, "-- Recuperado DTE Folio: " + foliDocu);
                }
                dtes.cantRestantes = cantDTERestantes(sql, conexion) - dte_num;
                logs.putLog(1, "-- Cantidad restante de DTE (cantRestantes) " + dtes.cantRestantes);
            }
        }
Esempio n. 15
0
    public ResponseGet getStateRejection(string company, string CodigoSolicitud)
    {
        ResponseGet mens = new ResponseGet();

        // Seguridad de Servicios Web (Validando presencia de todos los campos)
        if (string.IsNullOrEmpty(company) || string.IsNullOrEmpty(CodigoSolicitud))
        {
            mens.Codigo  = ER0;
            mens.Mensaje = "Todos los parámetros deben contener valor";
            return(mens);
        }

        if (!DbnetWssSecurity.DbnetWssAutorizador.validaUsuario(company))
        {
            mens.Codigo  = "ER1";
            mens.Mensaje = "Empresa no se encuentra configurada.";
            return(mens);
        }

        #region Definicion de Variables
        String Servicio    = "";
        String Metodo      = "";
        String log_mensaje = "";
        log    logs        = new log();
        int    posicion;
        string companySinDV;
        string companyCodeSiiSinDV;
        string digito          = "";
        String LogAplica       = "N";
        string ErrLugar        = "";
        String ListaParametros = "";
        #endregion Definicion de Variables

        bdConexion conexion = new bdConexion();
        try
        {
            #region Inicializacion Nombre de WSS y Metodo
            ErrLugar        = "Inicializacion de WSS y Metodo";
            ListaParametros = "Parametros : [company - " + company + "][CodigoSolicitud - " + CodigoSolicitud + "].";
            Servicio        = "SupplierETDRejection";
            Metodo          = "getStateRejection";
            #endregion Inicializacion Nombre de WSS y Metodo

            #region Calcula RutEmpresa sin DV
            posicion     = company.IndexOf("-");
            companySinDV = company;
            if (company.IndexOf("-") >= 0)
            {
                digito = company.Substring(posicion + 1, 1);
                if (digito != "")
                {
                    companySinDV = company.Substring(0, posicion);
                }
            }
            #endregion Calcula RutEmpresa sin DV

            #region Verifica Empresa Autorizada a trabajar con WebService
            ErrLugar     = "Verifica Empresa Autorizada a trabajar con WebService";
            mens.Codigo  = "INI";
            mens.Mensaje = "Inicializacion. Company [" + companySinDV + "]";
            if (ConfigurationManager.AppSettings["eHome:" + companySinDV] != null)
            {
                #region Manejo Logs
                logs.nombreLog = Servicio + "_" + Metodo;
                logs.tipoLog   = Convert.ToInt32(ConfigurationManager.AppSettings["tl"]);
                logs.egateHome = ConfigurationManager.AppSettings["eHome:" + companySinDV];

                mens.Mensaje = "Rut Empresa : " + company;
                log_mensaje  = mens.Mensaje;
                #endregion Manejo Logs
            }
            else
            {
                mens.Codigo  = "ER7";
                mens.Mensaje = "Empresa [ " + companySinDV + " ] no autorizada a operar en WebService.";
                return(mens);
            }
            #endregion Verifica Empresa Autorizada a trabajar con WebService

            mens.Codigo  = "INI";
            mens.Mensaje = "Entra.";

            #region Conexion a BD
            ErrLugar           = "Conexion a BD";
            conexion.egateHome = logs.egateHome;
            conexion.conexionOpen();
            #endregion Conexion a BD

            LogAplica = "S"; // A partir de aca puedo escribir en log

            #region Valida DV RutReceptor
            ErrLugar = "Valida DV RutReceptor";
            if (digito != "")
            {
                if (!Validaciones.validaRut(company))
                {
                    mens.Codigo  = ER0;
                    mens.Mensaje = "DV RutReceptor no corresponde";
                    log_mensaje += " - " + mens.Mensaje;
                    logs.putLog(1, log_mensaje);
                    return(mens);
                }
                company = companySinDV;
            }
            #endregion Valida Rut Receptor

            int    codi_empr = Convert.ToInt32(ConfigurationManager.AppSettings["codi_empr:" + company]);
            string codi_emex = ConfigurationManager.AppSettings["codi_emex:" + company];

            if ((codi_empr != 1) || string.IsNullOrEmpty(codi_emex))
            {
                ErrLugar     = String.Format("Empresa [{0}] no autorizada a operar en WebService.", company);
                mens.Codigo  = ER5;
                mens.Mensaje = ErrLugar;

                log_mensaje += " - " + mens.Mensaje + " Receptor : [" + company + "]" + " CodigoSolicitud : [" + CodigoSolicitud + "].";
                logs.putLog(1, log_mensaje);
                return(mens);
            }


            String rutt_empr = String.Empty;
            String digi_empr = String.Empty;

            if (!conexion.validaExistenciaReclamo(company, CodigoSolicitud, out rutt_empr, out digi_empr))
            {
                #region Documento no existe
                ErrLugar     = "Documento no existe";
                mens.Codigo  = "ER5";
                mens.Estado  = "0";
                mens.Mensaje = "Documento no existe o posee estado que no permite ser reclamado";
                log_mensaje += " - " + mens.Mensaje + " Emisor : [" + company + "]" + " CodigoSolicitud : [" + CodigoSolicitud + "].";
                logs.putLog(1, log_mensaje);
                return(mens);

                #endregion Documento no existe
            }
            else
            {
                logs.putLog(1, "Documento Existe");
                String pi_codi_erro = String.Empty;
                String pi_mens_erro = String.Empty;
                String pi_resp_msge = String.Empty;

                if (conexion.recoverRejection(company, CodigoSolicitud, rutt_empr, digi_empr, out pi_codi_erro, out pi_mens_erro, out pi_resp_msge))
                {
                    conexion.confirma();
                    mens.Codigo  = DOK;
                    mens.Estado  = pi_codi_erro;
                    mens.Mensaje = pi_mens_erro;

                    logs.putLog(1, "Se recupera Reclamo");
                    log_mensaje += " - company : [" + company + "] CodigoSolicitud : [" + CodigoSolicitud +
                                   "] rutt_empr : [" + rutt_empr + "-" + digi_empr + "mens.Codigo : [" + mens.Codigo + "]" +
                                   " mens.Estado : [" + mens.Estado + "]" + " mens.Mensaje : [" + mens.Mensaje + "]";
                    logs.putLog(1, log_mensaje);

                    return(mens);
                }
                else
                {
                    ErrLugar     = "Error al aplicar Reclamo";
                    mens.Codigo  = "DON";
                    mens.Mensaje = "Error al aplicar Reclamo";
                    log_mensaje += " - " + mens.Mensaje + " - company : [" + company + "] CodigoSolicitud : [" + CodigoSolicitud +
                                   "] rutt_empr : [" + rutt_empr + "-" + digi_empr + "mens.Codigo : [" + mens.Codigo + "]" +
                                   " mens.Estado : [" + mens.Estado + "]" + " mens.Mensaje : [" + mens.Mensaje + "]";
                    logs.putLog(1, log_mensaje);
                    conexion.rechaza();
                }

                //oData = true;
            }

            return(mens);
        }
        catch (Exception ex)
        {
            #region Manejo de Exception
            if (LogAplica == "S")
            {
                int largo;
                largo = Convert.ToString(ex.Message).Length;
                if (largo > 100)
                {
                    largo = 100;
                }
                mens.Codigo  = "ERR";
                mens.Mensaje = "Se ha producido el error : " + Convert.ToString(ex.Message) + ".";

                log_mensaje = "Rut Empresa : " + company + ". Error en " + ErrLugar + " : " + Convert.ToString(ex.Message) + ". " + ListaParametros;
                logs.putLog(1, log_mensaje);
            }
            else
            {
                mens.Codigo  = "ERR";
                mens.Mensaje = "Se ha producido el error : " + ErrLugar + Convert.ToString(ex.Message) + ".";
            }
            return(mens);

            #endregion Tratamiento de Error
        }
        finally
        {
            if (conexion != null)
            {
                conexion.closeConexion();
            }
        }
    }
Esempio n. 16
0
    public Response setRejection(string company, string companyCodeSii, int documentType, int documentNumber, string statusCode)
    {
        string ErrLugar = "";

        ErrLugar = "Se crea instancia Mensaje()";
        Response mens = new Response();

        // Seguridad de Servicios Web (Validando presencia de todos los campos)
        if (string.IsNullOrEmpty(company) || string.IsNullOrEmpty(companyCodeSii) || string.IsNullOrEmpty(documentType.ToString()) || string.IsNullOrEmpty(documentNumber.ToString()) || string.IsNullOrEmpty(statusCode))
        {
            mens.Codigo  = ER0;
            mens.Mensaje = "Todos los parámetros deben contener valor";
            return(mens);
        }
        if (!DbnetWssSecurity.DbnetWssAutorizador.validaUsuario(company))
        {
            mens.Codigo  = "ER1";
            mens.Mensaje = "Empresa no se encuentra configurada.";
            return(mens);
        }

        #region Define Variables
        String Servicio    = "";
        String Metodo      = "";
        String log_mensaje = "";
        log    logs        = new log();
        int    posicion;
        string companySinDV;
        string companyCodeSiiSinDV;
        string digitoCompanyCodeSii = String.Empty;
        string digitoCompany        = String.Empty;
        String LogAplica            = "N";
        String ListaParametros      = "";
        #endregion Define Variables
        bdConexion conexion = new bdConexion();

        try
        {
            #region Inicializacion Nombre de WSS y Metodo
            ErrLugar        = "Inicializacion Nombre de WSS y Metodo";
            ListaParametros = "Parametros : Empresa [" + company + "].";
            ListaParametros = "Parametros : [Emisor - " + companyCodeSii + "][TipoDocumento - " + documentType + "][Folio - " + documentNumber + "][Estado - " + statusCode + "].";
            Servicio        = "SupplierETDRejection";
            Metodo          = "setRejection";
            #endregion Inicializacion Nombre de WSS y Metodo

            #region Calcula RutEmpresa sin DV
            ErrLugar     = "Calcula RutEmpresa sin DV";
            posicion     = company.IndexOf("-");
            companySinDV = company;
            if (company.IndexOf("-") >= 0)
            {
                digitoCompany = company.Substring(posicion + 1, 1);
                if (digitoCompany != "")
                {
                    companySinDV = company.Substring(0, posicion);
                }
            }
            #endregion Calcula RutEmpresa sin DV

            // Determinar RutsinDV
            #region Verifica Empresa Autorizada a trabajar con WebService
            ErrLugar     = "Verifica Empresa Autorizada a trabajar con WebService";
            mens.Codigo  = "INI";
            mens.Mensaje = "Inicializacion. Company [" + companySinDV + "]";
            if (ConfigurationManager.AppSettings["eHome:" + companySinDV] != null)
            {
                #region Manejo Logs
                ErrLugar       = "Manejo Logs";
                logs.nombreLog = Servicio + "_" + Metodo;
                logs.tipoLog   = Convert.ToInt32(ConfigurationManager.AppSettings["tl"]);
                logs.egateHome = ConfigurationManager.AppSettings["eHome:" + companySinDV];

                mens.Mensaje = "Rut Empresa : " + company;
                log_mensaje  = mens.Mensaje;
                #endregion Manejo Logs
            }
            else
            {
                mens.Codigo  = "ER7";
                mens.Mensaje = "Empresa [ " + companySinDV + " ] no autorizada a operar en WebService.";
                return(mens);
            }
            #endregion Verifica Empresa Autorizada a trabajar con WebService

            mens.Codigo  = "INI";
            mens.Mensaje = "Entra.";

            #region Conexion a BD
            ErrLugar           = "Conexion a BD";
            conexion.egateHome = ConfigurationManager.AppSettings["eHome:" + companySinDV];
            conexion.conexionOpen();
            #endregion Conexion a BD

            LogAplica = "S"; // A partir de aca puedo escribir en log

            #region Valida DV RutReceptor
            ErrLugar = "Valida DV RutReceptor";
            if (digitoCompany != "")
            {
                if (!Validaciones.validaRut(company))
                {
                    mens.Codigo  = "ER1";
                    mens.Mensaje = "Rut Receptor no Válido";
                    log_mensaje += " - " + mens.Mensaje;
                    logs.putLog(1, log_mensaje);
                    return(mens);
                }
                company = companySinDV;
            }
            #endregion Valida Rut Receptor

            #region Valida DV RutEmisor
            ErrLugar            = "Valida DV Emisor";
            posicion            = companyCodeSii.IndexOf("-");
            companyCodeSiiSinDV = companyCodeSii;
            if (companyCodeSii.IndexOf("-") >= 0)
            {
                digitoCompanyCodeSii = companyCodeSii.Substring(posicion + 1, 1);
                if (digitoCompanyCodeSii != "")
                {
                    if (!Validaciones.validaRut(companyCodeSii))
                    {
                        mens.Codigo  = ER0;
                        mens.Mensaje = "DV RutEmisor no corresponde.";
                        log_mensaje += " - " + mens.Mensaje;
                        logs.putLog(1, log_mensaje);
                        return(mens);
                    }
                    companyCodeSiiSinDV = companyCodeSii.Substring(0, posicion);
                }
                companyCodeSii = companyCodeSiiSinDV;
            }
            #endregion Valida DV RutEmisor


            int    codi_empr = Convert.ToInt32(ConfigurationManager.AppSettings["codi_empr:" + company]);
            string codi_emex = ConfigurationManager.AppSettings["codi_emex:" + company];

            if ((codi_empr != 1) || string.IsNullOrEmpty(codi_emex))
            {
                ErrLugar     = String.Format("Empresa [{0}] no autorizada a operar en WebService.", company);
                mens.Codigo  = ER5;
                mens.Mensaje = ErrLugar;

                log_mensaje += " - " + mens.Mensaje + " Emisor : [" + companyCodeSii + "]" + " Tipo : [" + Convert.ToString(documentType) + "]" + " Folio : [" + Convert.ToString(documentNumber) + "].";
                logs.putLog(1, log_mensaje);
                return(mens);
            }

            string integracion = ConfigurationManager.AppSettings["integracion"];


            if (!conexion.estadoAprov(statusCode))
            {
                #region Valida Estado de Aprob/Rechazo
                ErrLugar     = "Valida Estado de Aprob/Rechazo";
                mens.Codigo  = ER4;
                mens.Mensaje = "Estado no es Válido";
                log_mensaje += " - " + mens.Mensaje;
                logs.putLog(1, log_mensaje);
                return(mens);

                #endregion Valida Estado de Aprob/Rechazo
            }
            else
            {
                if (!conexion.validaExistencia(Convert.ToInt32(companyCodeSii), documentType, documentNumber))
                {
                    #region Documento no existe
                    ErrLugar     = "Documento no existe";
                    mens.Codigo  = "ER5";
                    mens.Mensaje = "Documento no existe o posee estado que no permite ser aceptado comercialmente.";
                    log_mensaje += " - " + mens.Mensaje + " Emisor : [" + companyCodeSii + "]" + " Tipo : [" + Convert.ToString(documentType) + "]" + " Folio : [" + Convert.ToString(documentNumber) + "].";
                    logs.putLog(1, log_mensaje);
                    return(mens);

                    #endregion Documento no existe
                }
                else
                {
                    #region Documento Existe
                    ErrLugar = "Aplica Rejection";
                    string pi_codi_erro = String.Empty;
                    string pi_mens_erro = String.Empty;
                    string pi_corr_qmsg = String.Empty;

                    if (conexion.applyRejection(company, digitoCompany, companyCodeSii, digitoCompanyCodeSii, documentType, documentNumber, statusCode, out pi_codi_erro, out pi_mens_erro, out pi_corr_qmsg))
                    {
                        conexion.confirma();
                        mens.CodigoSolicitud = pi_corr_qmsg;
                        mens.Codigo          = DOK;
                        mens.Mensaje         = pi_mens_erro;

                        logs.putLog(1, "Se aplica Reclamo");
                        log_mensaje += " - company : [" + company + "-" + digitoCompany + "] companyCodeSii : [" + companyCodeSii + "-" + digitoCompanyCodeSii +
                                       "] documentType : [" + documentType + "] documentNumber : [" + documentNumber + "] statusCode : [" + statusCode +
                                       "] mens.CodigoSolicitud : [" + mens.CodigoSolicitud + "]" + " mens.Codigo : [" + mens.Codigo + "]" + " mens.Mensaje : [" + mens.Mensaje + "]";
                        logs.putLog(1, log_mensaje);



                        // Valida si tiene integracion con SE
                        if (integracion == "1")
                        {
                            logs.putLog(1, "Integracion con SE");

                            if (conexion.notificaReclamoASE(codi_empr, codi_emex, statusCode, companyCodeSii, documentType, documentNumber))
                            {
                                logs.putLog(1, "Se actualiza SE con exito");
                            }
                            else
                            {
                                logs.putLog(1, "Fallo al intentar actualizar SE");
                            }
                        }

                        return(mens);
                    }
                    else
                    {
                        ErrLugar     = "Error al aplicar Reclamo";
                        mens.Codigo  = "DON";
                        mens.Mensaje = "Error al aplicar Reclamo";
                        log_mensaje += " - " + mens.Mensaje + " - company : [" + company + "-" + digitoCompany + "] companyCodeSii : [" + companyCodeSii + "-" + digitoCompanyCodeSii +
                                       "] documentType : [" + documentType + "] documentNumber : [" + documentNumber + "] statusCode : [" + statusCode +
                                       "] mens.CodigoSolicitud : [" + mens.CodigoSolicitud + "]" + " mens.Codigo : [" + mens.Codigo + "]" + " mens.Mensaje : [" + mens.Mensaje + "]";
                        logs.putLog(1, log_mensaje);
                        conexion.rechaza();
                    }
                    #endregion Documento Existe
                }
            }
        }
        catch (Exception ex)
        {
            #region Manejo de Exception
            if (LogAplica == "S")
            {
                int largo;
                largo = Convert.ToString(ex.Message).Length;
                if (largo > 100)
                {
                    largo = 100;
                }
                mens.Codigo  = "ERR";
                mens.Mensaje = "Se ha producido el error : " + Convert.ToString(ex.Message) + ".";

                log_mensaje = "Rut Empresa : " + company + ". Error en " + ErrLugar + " : " + Convert.ToString(ex.Message).Substring(1, largo) + ". " + ListaParametros;
                logs.putLog(1, log_mensaje);
            }
            else
            {
                mens.Codigo  = "ERR";
                mens.Mensaje = "Se ha producido el error : " + ErrLugar + Convert.ToString(ex.Message) + ".";
            }

            return(mens);

            #endregion Manejo de Exception
        }
        finally
        {
            if (conexion != null)
            {
                conexion.closeConexion();
            }
        }
        return(mens);
    }