/// <summary>
        /// Metodo para descartar algun documento de comunicacion de baja.
        /// </summary>
        /// <param name="Id"></param>
        /// <param name="tipoContiene"></param>
        public void cs_pxDescartarDocumento(string Id, string tipoContiene)
        {
            //Solo se puede descartar aquellos documentos que no hayan tenido alguna respuesta de SUNAT
            clsEntityVoidedDocuments comunicacionbaja = new clsEntityVoidedDocuments(localbd).cs_fxObtenerUnoPorId(Id);

            if (comunicacionbaja.Cs_pr_EstadoSUNAT == "2")
            {
                List <clsEntityVoidedDocuments_VoidedDocumentsLine> comunicacionbaja_items = new clsEntityVoidedDocuments_VoidedDocumentsLine(localbd).cs_fxObtenerTodoPorCabeceraId(comunicacionbaja.Cs_pr_VoidedDocuments_Id);
                if (tipoContiene == "0")
                {
                    clsEntityDocument documento_principal;
                    foreach (var item in comunicacionbaja_items)
                    {
                        documento_principal = new clsEntityDocument(localbd).cs_fxObtenerUnoPorId(item.Cs_pr_IDDocumentoRelacionado);
                        documento_principal.Cs_pr_ComunicacionBaja = "";
                        documento_principal.cs_pxActualizar(false, false);
                    }
                }
                else if (tipoContiene == "1")
                {
                    clsEntityRetention documento_principal;
                    foreach (var item in comunicacionbaja_items)
                    {
                        documento_principal = new clsEntityRetention(localbd).cs_fxObtenerUnoPorId(item.Cs_pr_IDDocumentoRelacionado);
                        documento_principal.Cs_pr_Reversion = "";
                        documento_principal.cs_pxActualizar(false, false);
                    }
                }

                comunicacionbaja.cs_pxComunicacionBajaEliminar(Id);
            }
        }
 public void cs_fxDescartarDocumento(string Id_documentoprincipal, string Id_documentorelacionado, string tipoContiene)
 {
     try
     {
         List <string> registro = new clsEntityVoidedDocuments_VoidedDocumentsLine(localDB).cs_fxObtenerUnoPorDocumentoPrincipalYDocumentoRelacionado(Id_documentoprincipal, Id_documentorelacionado);
         if (tipoContiene == "0")
         {
             clsEntityDocument documentoprincipal = new clsEntityDocument(localDB).cs_fxObtenerUnoPorId(Id_documentoprincipal);
             documentoprincipal.Cs_pr_ComunicacionBaja = "";
             documentoprincipal.cs_pxActualizar(false, false);
         }
         else if (tipoContiene == "1")
         {
             clsEntityRetention documentoprincipal = new clsEntityRetention(localDB).cs_fxObtenerUnoPorId(Id_documentoprincipal);
             documentoprincipal.Cs_pr_Reversion = "";
             documentoprincipal.cs_pxActualizar(false, false);
         }
         clsEntityVoidedDocuments_VoidedDocumentsLine linea = new clsEntityVoidedDocuments_VoidedDocumentsLine(localDB).cs_fxObtenerUnoPorId(registro[0]);
         linea.cs_pxElimnar(false);
     }
     catch (Exception ex) {
         clsBaseMensaje.cs_pxMsg("Error comunicacion de baja", "Se ha producido un error al descartar los documentos.");
         clsBaseLog.cs_pxRegistarAdd("clsEntityVoidedDocuments_VoidedDocumentsLine cs_fxDescartarDocumento " + ex.ToString());
     }
 }
Ejemplo n.º 3
0
        public void cs_pxEliminarDocumento(string Id)
        {
            try
            {
                //actualizar relacion y estado en tabla document.
                List <List <string> > registros = new clsEntityDocument(localDB).cs_pxObtenerPorResumenDiario(Id);
                clsEntityDocument     doc;
                foreach (var item in registros)
                {
                    doc = new clsEntityDocument(localDB).cs_fxObtenerUnoPorId(item[0].ToString().Trim());
                    //doc.Cs_pr_EstadoSCC = "2";
                    //doc.Cs_pr_EstadoSUNAT = "2";
                    doc.Cs_pr_Resumendiario = "";
                    doc.cs_pxActualizar(false, false);
                }

                //eliminar de summary documents y los relacionados:
                clsEntitySummaryDocuments       Summary       = new clsEntitySummaryDocuments(localDB).cs_fxObtenerUnoPorId(Id);
                clsEntitySummaryDocuments_Notes Summary_Notes = new clsEntitySummaryDocuments_Notes(localDB);//eliminado
                clsEntitySummaryDocuments_SummaryDocumentsLine Summary_Line = new clsEntitySummaryDocuments_SummaryDocumentsLine(localDB);
                clsEntitySummaryDocuments_SummaryDocumentsLine_AllowanceCharge Summary_Line_Allowance_Charge = new clsEntitySummaryDocuments_SummaryDocumentsLine_AllowanceCharge(localDB);
                clsEntitySummaryDocuments_SummaryDocumentsLine_BillingPayment  Summary_Line_Billing_Payment  = new clsEntitySummaryDocuments_SummaryDocumentsLine_BillingPayment(localDB);
                clsEntitySummaryDocuments_SummaryDocumentsLine_TaxTotal        Summay_Line_Tax_Total         = new clsEntitySummaryDocuments_SummaryDocumentsLine_TaxTotal(localDB);

                foreach (var item in Summary_Notes.cs_fxObtenerTodoPorSummaryId(Id))
                {
                    item.cs_pxElimnar(false);
                }
                foreach (var item in Summary_Line.cs_fxObtenerTodoPorCabeceraId(Id))
                {
                    foreach (var item1 in Summary_Line_Billing_Payment.cs_fxObtenerTodoPorCabeceraId(item.Cs_pr_SummaryDocuments_SummaryDocumentsLine_Id))
                    {
                        item1.cs_pxElimnar(false);
                    }

                    foreach (var item2 in Summary_Line_Allowance_Charge.cs_fxObtenerTodoPorCabeceraId(item.Cs_pr_SummaryDocuments_SummaryDocumentsLine_Id))
                    {
                        item2.cs_pxElimnar(false);
                    }

                    foreach (var item3 in Summay_Line_Tax_Total.cs_fxObtenerTodoPorCabeceraId(item.Cs_pr_SummaryDocuments_SummaryDocumentsLine_Id))
                    {
                        item3.cs_pxElimnar(false);
                    }

                    item.cs_pxElimnar(false);
                }

                Summary.cs_pxElimnar(false);
            }
            catch (Exception ex)
            {
                clsBaseLog.cs_pxRegistarAdd("clsEntitySummaryDocuments cs_pxEliminarDocumento " + ex.ToString());
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Metodo para liberar resumenes diarios.
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        public bool cs_pxLiberarSustitutorioDocumento(string Id)
        {
            bool retorno = false;

            try
            {
                //buscar resumenes con el id y poner en liberados; cambiar estado de sunat y scc -> agregar el ultimo valor de resumen a campo 42 para tener quienes eran del anterior resumen.
                List <List <string> > docs_anteriores = new clsEntityDocument(localDB).cs_pxObtenerPorResumenDiario(Id);
                clsEntityDocument     doc;
                foreach (var item in docs_anteriores)
                {
                    //Cristhian|28/12/2017|FEI2-325

                    /*Se modifica esta parte del codigo ya que cuando libera los ducmentos asosciados a un resumen
                     * diario, los comprobantes que tenian el estado de baja cambian a pendiuente correcto*/
                    /*INICIO MODIFICACIóN*/
                    /*Entonces si el comprobante no esta de baja en este caso un codigo diferente de 3*/
                    if (item[28] != "3")
                    {
                        /*se aplican los siguinetes cambios a sus valores, esto afecta a la tabla cs_Document*/
                        doc = new clsEntityDocument(localDB).cs_fxObtenerUnoPorId(item[0].ToString().Trim());
                        doc.Cs_pr_EstadoSCC          = "2";
                        doc.Cs_pr_EstadoSUNAT        = "2";
                        doc.Cs_ResumenUltimo_Enviado = doc.Cs_pr_Resumendiario;
                        doc.Cs_pr_Resumendiario      = "";
                        doc.cs_pxActualizar(false, false);
                        retorno = true;
                    }
                    /*Si el comprobante esta de baja en este caso es el codigo 3*/
                    else if (item[28] == "3")
                    {
                        /*No se modifica los estados del docuento y se dajan tal cual estan registrados en la
                         * base de datos*/
                        doc = new clsEntityDocument(localDB).cs_fxObtenerUnoPorId(item[0].ToString().Trim());
                        doc.Cs_ResumenUltimo_Enviado = doc.Cs_pr_Resumendiario;
                        doc.Cs_pr_Resumendiario      = "";
                        doc.Cs_pr_EstadoSCC          = "3";
                        doc.Cs_pr_EstadoSUNAT        = "0";
                        doc.cs_pxActualizar(false, false);
                        retorno = true;
                    }
                    /*FIN MODIFICACIóN*/
                }
            }
            catch (Exception ex)
            {
                clsBaseLog.cs_pxRegistarAdd("clsEntitySummaryDocuments cs_pxLiberarSustitutorioDocumento" + ex.ToString());
            }

            return(retorno);
        }
Ejemplo n.º 5
0
        private void btnDescargaCDR_Click(object sender, RoutedEventArgs e)
        {
            btncdr.IsEnabled = false;
            clsBaseConfiguracion conf = new clsBaseConfiguracion();
            //Obtener el usuario seleccionado.
            ReporteDocumento item = (ReporteDocumento)dgComprobantes.SelectedItem;

            //Si existe el item seleccionado.
            if (item != null)
            {
                /* if (item.EstadoSunatCodigo == "0" || item.EstadoSunatCodigo == "1" || item.EstadoSunatCodigo == "3")
                 * {*/
                clsEntityDeclarant declarante = new clsEntityDeclarant().cs_pxObtenerUnoPorId(localDB.Cs_pr_Declarant_Id);

                string   nombreCarpeta = declarante.Cs_pr_Ruc + "-" + item.Tipo + "-" + item.SerieNumero + ".zip-dc";
                string[] dirs          = Directory.GetDirectories(conf.cs_prRutadocumentosrecepcion, "*" + nombreCarpeta);

                if (dirs.Length > 0)
                {
                    string rutaOpen = string.Empty;
                    foreach (string dir in dirs)
                    {
                        rutaOpen = dir;
                    }
                    //existe el cdr
                    Process.Start("explorer.exe", rutaOpen);
                }
                else
                {
                    try
                    {
                        //descargar el cdr
                        string[] partes = item.SerieNumero.Split('-');
                        string   serie  = partes[0];
                        int      numero = Convert.ToInt32(partes[1]);
                        byte[]   comprobante_electronico_bytes = null;
                        SecurityBindingElement        binding  = SecurityBindingElement.CreateUserNameOverTransportBindingElement(); binding.IncludeTimestamp = false;
                        ServicioCDR.billServiceClient bsc      = new ServicioCDR.billServiceClient(new CustomBinding(binding, new TextMessageEncodingBindingElement(MessageVersion.Soap11, Encoding.UTF8), new HttpsTransportBindingElement()), new EndpointAddress("https://www.sunat.gob.pe:443/ol-it-wsconscpegem/billConsultService"));
                        bsc.ClientCredentials.UserName.UserName = declarante.Cs_pr_Ruc + declarante.Cs_pr_Usuariosol;
                        bsc.ClientCredentials.UserName.Password = declarante.Cs_pr_Clavesol;
                        ServicioCDR.statusResponse sr = new ServicioCDR.statusResponse();
                        bsc.Open();
                        sr = bsc.getStatusCdr(declarante.Cs_pr_Ruc, item.Tipo, serie, numero);
                        string code = sr.statusCode;
                        if (sr.statusCode == "0004")
                        {
                            comprobante_electronico_bytes = sr.content;
                        }
                        bsc.Close();
                        if (comprobante_electronico_bytes != null)
                        {
                            XmlDocument documentoXML            = new XmlDocument();
                            string      comprobante_electronico = declarante.Cs_pr_Ruc + "-" + item.Tipo + "-" + item.SerieNumero + ".zip";

                            string FechaHora = DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss");
                            string CDR       = conf.cs_prRutadocumentosrecepcion + "\\" + FechaHora + " " + comprobante_electronico;

                            FileStream fs = new FileStream(CDR, FileMode.Create);
                            fs.Write(comprobante_electronico_bytes, 0, comprobante_electronico_bytes.Length);
                            fs.Close();
                            //string FechaHora = DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss");
                            //Verificar el contenido del archivo
                            ZipFile.ExtractToDirectory(conf.cs_prRutadocumentosrecepcion + "\\" + FechaHora + " " + comprobante_electronico, conf.cs_prRutadocumentosrecepcion + "\\" + FechaHora + " " + comprobante_electronico + "-dc");
                            documentoXML.Load(conf.cs_prRutadocumentosrecepcion + "\\" + FechaHora + " " + comprobante_electronico + "-dc\\" + "R-" + declarante.Cs_pr_Ruc + "-" + item.Tipo + "-" + item.SerieNumero + ".xml");

                            clsEntityDocument ce = new clsEntityDocument(localDB).cs_fxObtenerUnoPorId(item.Id);

                            ce.Cs_pr_EstadoSCC = "0";

                            if (documentoXML.OuterXml.Contains("ha sido aceptad"))
                            {
                                ce.Cs_pr_EstadoSUNAT = "0";
                                ce.Cs_pr_CDR         = documentoXML.OuterXml;
                            }
                            else
                            {
                                ce.Cs_pr_EstadoSUNAT = "1";
                                ce.Cs_pr_CDR         = documentoXML.OuterXml;
                            }

                            string cadena_xml = @documentoXML.OuterXml;
                            cadena_xml = cadena_xml.Replace("ext:", "");
                            cadena_xml = cadena_xml.Replace("cbc:", "");
                            cadena_xml = cadena_xml.Replace("cac:", "");
                            cadena_xml = cadena_xml.Replace("ds:", "");
                            cadena_xml = cadena_xml.Replace("ar:", "");
                            cadena_xml = cadena_xml.Replace("\\\"", "\"");
                            if (cadena_xml.Trim().Length > 0)
                            {
                                cadena_xml = cadena_xml.Replace("<ApplicationResponse xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2\" xmlns:cac=\"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2\" xmlns:cbc=\"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:ext=\"urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2\">", "<ApplicationResponse>");
                                XmlDocument d = new XmlDocument();
                                d.LoadXml(cadena_xml);
                                ce.Cs_pr_ComentarioSUNAT = d.SelectSingleNode("/ApplicationResponse/DocumentResponse/Response/Description").InnerText;
                            }
                            ce.cs_pxActualizar(false, false);
                            System.Windows.Forms.MessageBox.Show("El CDR correspondiente se ha descargado correctamente.", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            cargarGrilla();
                            Process.Start("explorer.exe", conf.cs_prRutadocumentosrecepcion + "\\" + FechaHora + " " + comprobante_electronico + "-dc");
                        }
                        else
                        {
                            System.Windows.Forms.MessageBox.Show("No se ha podido descargar el CDR correspondiente de la Sunat. Intente nuevamente", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                    catch (Exception ex)
                    {
                        clsBaseLog.cs_pxRegistarAdd("descrgar cdr" + ex.ToString());
                        System.Windows.Forms.MessageBox.Show("No se ha podido descargar el CDR correspondiente. Revise el archivo de errores para mayor información.", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }

                /*   }
                 * else
                 * {
                 *     System.Windows.Forms.MessageBox.Show("Solo se puede descargar el CDR de comprobantes que hayan sido enviados a Sunat", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                 * }*/
            }
            else
            {
                System.Windows.Forms.MessageBox.Show("Seleccione un comprobante", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            btncdr.IsEnabled = true;
        }
Ejemplo n.º 6
0
        //Cristhian|01/03/2018|FEI2-586
        /*Metodo para actuazliar el docuemnto de comunicacion de baja*/
        /*NUEVO INICIO*/
        /// <summary>
        /// Actualizar el documento de comunicacción de baja a documento existente
        /// </summary>
        /// <param name="Id_Documento"></param>
        /// <param name="Id"></param>
        /// <returns></returns>
        public bool cs_pxComunicacionBajaActualizar(string Id_Documento, string Id, string TipoContiene)
        {
            /**
             * 1.Verificar si ya existe.
             *  Si ya existe, no agregar.
             *  No no agregar.
             */
            string documento_id = string.Empty;

            try
            {
                //Buscar elementos existentes en la comunicación de baja actual.
                clsEntityVoidedDocuments documento = new clsEntityVoidedDocuments(localDB);
                OdbcDataReader           datos     = null;
                string sql = "SELECT * FROM cs_VoidedDocuments_VoidedDocumentsLine WHERE cs_VoidedDocuments_Id=" + Id + " ;";//Estado SCC
                //clsBaseConexion cn = new clsBaseConexion();
                OdbcConnection cs_pxConexion_basedatos = new OdbcConnection(localDB.cs_prConexioncadenabasedatos());
                cs_pxConexion_basedatos.Open();
                datos = new OdbcCommand(sql, cs_pxConexion_basedatos).ExecuteReader();

                //Mantener solo los que no sean duplicados.
                List <string> actualizar_estos_items = new List <string>();
                bool          agregar;
                Int32         items_total = 0;

                agregar = true;
                while (datos.Read())
                {
                    items_total++;
                    string sada = datos[7].ToString() + "-" + Id_Documento;
                    if (datos[7].ToString() == Id_Documento)
                    {
                        agregar = false;
                    }
                }
                if (agregar == true)
                {
                    actualizar_estos_items.Add(Id_Documento);
                }

                if (actualizar_estos_items.Count > 0)
                {
                    foreach (var item in actualizar_estos_items)
                    {
                        items_total++;
                        clsEntityVoidedDocuments_VoidedDocumentsLine detalle = new clsEntityVoidedDocuments_VoidedDocumentsLine(localDB);

                        if (TipoContiene == "0")
                        {
                            clsEntityDocument documento_cabecera = new clsEntityDocument(localDB).cs_fxObtenerUnoPorId(item);
                            //Jordy Amaro 09-12-16 FE-906
                            //cambio > por <=  para que actualize los documentos a enviarse en comunicacion de baja.
                            //Ini-Modifica
                            if (documento_cabecera.Cs_pr_ComunicacionBaja.Length <= 0)
                            {//Fin-Modifica
                                detalle.Cs_pr_VoidedDocuments_VoidedDocumentsLine_Id = Guid.NewGuid().ToString();
                                detalle.Cs_pr_VoidedDocuments_Id     = Id;
                                detalle.Cs_tag_LineID                = items_total.ToString();
                                detalle.Cs_tag_DocumentTypeCode      = documento_cabecera.Cs_tag_InvoiceTypeCode;
                                detalle.Cs_tag_DocumentSerialID      = documento_cabecera.Cs_tag_ID.Split('-')[0].ToString();
                                detalle.Cs_tag_DocumentNumberID      = documento_cabecera.Cs_tag_ID.Split('-')[1].ToString();
                                detalle.Cs_tag_VoidReasonDescription = "";
                                detalle.Cs_pr_IDDocumentoRelacionado = item;
                                detalle.cs_pxInsertar(false, true);
                                documento_cabecera.Cs_pr_ComunicacionBaja = Id;
                                documento_cabecera.cs_pxActualizar(false, false);
                            }
                        }
                        else if (TipoContiene == "1")
                        {
                            clsEntityRetention documento_cabecera = new clsEntityRetention(localDB).cs_fxObtenerUnoPorId(item);
                            //Jordy Amaro 09-12-16 FE-906
                            //cambio > por <=  para que actualize los documentos a enviarse en comunicacion de baja.
                            //Ini-Modifica
                            if (documento_cabecera.Cs_pr_Reversion.Length <= 0)
                            {//Fin-Modifica
                                detalle.Cs_pr_VoidedDocuments_VoidedDocumentsLine_Id = Guid.NewGuid().ToString();
                                detalle.Cs_pr_VoidedDocuments_Id     = Id;
                                detalle.Cs_tag_LineID                = items_total.ToString();
                                detalle.Cs_tag_DocumentTypeCode      = "20";
                                detalle.Cs_tag_DocumentSerialID      = documento_cabecera.Cs_tag_Id.Split('-')[0].ToString();
                                detalle.Cs_tag_DocumentNumberID      = documento_cabecera.Cs_tag_Id.Split('-')[1].ToString();
                                detalle.Cs_tag_VoidReasonDescription = "";
                                detalle.Cs_pr_IDDocumentoRelacionado = item;
                                detalle.cs_pxInsertar(false, true);
                                documento_cabecera.Cs_pr_Reversion = Id;
                                documento_cabecera.cs_pxActualizar(false, false);
                            }
                        }
                    }
                }
                cs_pxConexion_basedatos.Close();
                return(true);
            }
            catch (Exception ex)
            {
                clsBaseMensaje.cs_pxMsgEr("ERR6", ex.ToString());
                //System.Windows.Forms.MessageBox.Show(ex.ToString());
                clsBaseLog.cs_pxRegistarAdd("clsEntityVoidedDocuments cs_pxComunicacionBajaActualizar" + ex.ToString());
                return(false);
            }
        }
        /*INICIO - Pequeña parte de Programacion orientada a Eventos*/

        //Cristhian|01/03/2018|FEI2-586

        /*Metodo creado para dar de baja los comprobantes electronicos que son enviados desde
         * el sistema DBF comercial, en este caso solo facturas.*/
        /*NUEVO INICIO*/
        /// <summary>
        /// Método para dar de baja al comprobante electronico
        /// </summary>
        /// <param name="Id_Documento"></param>
        /// <param name="tipoContenido"></param>
        /// <returns>mensaje</returns>
        public string cs_pxProcesarComunicacionBaja(string Id_Documento, string tipoContenido)
        {
            string mensaje = string.Empty;

            try
            {
                //Buscar grupos de fechas seleccionadas y por cada grupo debe crear un archivo de comunicación de baja.
                #region "AGRUPAR POR COMUNICACIÓN DE BAJA"
                List <string> grupo             = new List <string>(); //Crear grupos de fecha por IssueDate - FECHA DE EMISION
                List <string> docs_no_agregados = new List <string>(); //Lista de doccumentos no agregados

                //Si los comprobantes son facturas, notas de creddito o debito, el tipo de contenido sera 0.
                if (tipoContenido == "0")
                {
                    clsEntityDocument document = new clsEntityDocument(localDB).cs_fxObtenerUnoPorId(Id_Documento);
                    if (document.Cs_pr_ComunicacionBaja.Trim().Length <= 0)
                    {
                        //Verificar los 7 dias anteriores al dia de hoy para permitir agregar a resumen diario.
                        string fechaEmision = document.Cs_tag_IssueDate;
                        if (fechaEmision == DateTime.Now.ToString("yyyy-MM-dd") ||
                            fechaEmision == DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") ||
                            fechaEmision == DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd") ||
                            fechaEmision == DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd") ||
                            fechaEmision == DateTime.Now.AddDays(-4).ToString("yyyy-MM-dd") ||
                            fechaEmision == DateTime.Now.AddDays(-5).ToString("yyyy-MM-dd") ||
                            fechaEmision == DateTime.Now.AddDays(-6).ToString("yyyy-MM-dd") ||
                            fechaEmision == DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"))
                        {
                            int count = 0;
                            foreach (var item_grupo in grupo)
                            {
                                if (fechaEmision == item_grupo)
                                {
                                    count++;
                                }
                            }
                            if (count <= 0)    //Si no existe el elemento en la lista, que se agregue.
                            {
                                grupo.Add(fechaEmision);
                            }
                        }
                        else
                        {
                            docs_no_agregados.Add(document.Cs_tag_ID);
                        }
                    }
                }
                /*En caso sean de tipo contenido 1, es para los documentos de retención*/
                else if (tipoContenido == "1")
                {
                    //Cuando se agregan tipo de documentos retencion
                    clsEntityRetention document = new clsEntityRetention(localDB).cs_fxObtenerUnoPorId(Id_Documento);
                    if (document.Cs_pr_Reversion.Trim().Length <= 0)
                    {
                        //Asignar valor a fecha de emision.
                        string fechaEmision = document.Cs_tag_IssueDate;

                        int count = 0;
                        foreach (var item_grupo in grupo)
                        {
                            if (fechaEmision == item_grupo)
                            {
                                count++;
                            }
                        }
                        if (count <= 0)    //Si no existe el elemento en la lista, que se agregue.
                        {
                            grupo.Add(fechaEmision);
                        }
                    }
                }
                #endregion

                //Crear grupos de fecha por IssueDate - FechaEmision
                List <string>            doc_agregados = new List <string>();
                clsEntityVoidedDocuments comunicacion_baja;

                //Si existen documentos a dar de baja por grupos.
                foreach (var fecha_comunicacion in grupo)
                {
                    //Buscar comunicacion de baja existente.
                    string documento_baja_existente = new clsEntityVoidedDocuments(localDB).cs_pxObtenerDocumentoComuninicacionBajaExisente(fecha_comunicacion, tipoContenido);
                    if (documento_baja_existente != "")
                    {
                        //Si existe comunicacion de baja Agregar los comprobantes al que ya se encuentra creado.
                        bool agregado = new clsEntityVoidedDocuments(localDB).cs_pxComunicacionBajaActualizar(Id_Documento, documento_baja_existente, tipoContenido);
                        if (agregado == true)
                        {
                            //Si se han agregado los comprobantes actualizar el nombre de la comunicacion de baja en caso se este agregando a otro que se haya generado anteriormente.
                            comunicacion_baja = new clsEntityVoidedDocuments(localDB).cs_fxObtenerUnoPorId(documento_baja_existente);
                            comunicacion_baja.Cs_tag_IssueDate = DateTime.Now.ToString("yyyy-MM-dd");
                            string correlativo = comunicacion_baja.Cs_tag_ID.Split('-')[2];
                            if (tipoContenido == "0")
                            {    //Facturas y Notas
                                comunicacion_baja.Cs_tag_ID = "RA-" + comunicacion_baja.Cs_tag_IssueDate.Replace("-", "") + "-" + correlativo;
                            }
                            else if (tipoContenido == "1")
                            {    //Retencion
                                comunicacion_baja.Cs_tag_ID = "RR-" + comunicacion_baja.Cs_tag_IssueDate.Replace("-", "") + "-" + correlativo;
                            }
                            comunicacion_baja.cs_pxActualizar(false, false);
                            doc_agregados.Add(comunicacion_baja.Cs_tag_ID);
                        }
                    }
                    else
                    {
                        //Crear documento de comunicación de baja ya que no existe
                        string documento_nuevo_id = Guid.NewGuid().ToString();
                        clsEntityVoidedDocuments documento_nuevo = new clsEntityVoidedDocuments(localDB);
                        documento_nuevo.Cs_pr_VoidedDocuments_Id = documento_nuevo_id;
                        documento_nuevo.Cs_tag_ReferenceDate     = fecha_comunicacion;//DateTime.Now.ToString("yyyy-MM-dd");
                        documento_nuevo.Cs_tag_IssueDate         = DateTime.Now.ToString("yyyy-MM-dd");
                        if (tipoContenido == "0")
                        {
                            documento_nuevo.Cs_tag_ID = "RA-" + documento_nuevo.Cs_tag_IssueDate.Replace("-", "") + "-" + new clsEntityVoidedDocuments(localbd).cs_fxObtenerCorrelativo("0");
                        }
                        else if (tipoContenido == "1")
                        {
                            documento_nuevo.Cs_tag_ID = "RR-" + documento_nuevo.Cs_tag_IssueDate.Replace("-", "") + "-" + new clsEntityVoidedDocuments(localbd).cs_fxObtenerCorrelativo("1");
                        }
                        documento_nuevo.Cs_tag_AccountingSupplierParty_CustomerAssignedAccountID = declarante.Cs_pr_Ruc;
                        documento_nuevo.Cs_tag_AccountingSupplierParty_AdditionalAccountID       = "6";
                        documento_nuevo.Cs_tag_AccountingSupplierParty_Party_PartyLegalEntity_RegistrationName = declarante.Cs_pr_RazonSocial;
                        documento_nuevo.Cs_pr_Ticket               = "";
                        documento_nuevo.Cs_pr_EstadoSCC            = "2";
                        documento_nuevo.Cs_pr_EstadoSUNAT          = "2";
                        documento_nuevo.Cs_pr_ComentarioSUNAT      = "";
                        documento_nuevo.Cs_pr_XML                  = "";
                        documento_nuevo.Cs_pr_CDR                  = "";
                        documento_nuevo.Cs_pr_DocumentoRelacionado = "";
                        documento_nuevo.Cs_pr_TipoContenido        = tipoContenido;
                        string idRetorno = documento_nuevo.cs_pxInsertar(false, false);
                        clsEntityVoidedDocuments_VoidedDocumentsLine linea;

                        if (tipoContenido == "0")
                        {        //facturas boletas y notas
                            //Si la fecha de referencia del item es igual a la fecha de referencia de su grupo, agregar
                            clsEntityDocument documento = new clsEntityDocument(localDB).cs_fxObtenerUnoPorId(Id_Documento);
                            if (documento.Cs_tag_IssueDate == fecha_comunicacion)
                            {
                                linea = new clsEntityVoidedDocuments_VoidedDocumentsLine(localDB);
                                linea.Cs_pr_VoidedDocuments_VoidedDocumentsLine_Id = Guid.NewGuid().ToString();
                                linea.Cs_pr_VoidedDocuments_Id     = idRetorno;
                                linea.Cs_tag_LineID                = "";
                                linea.Cs_tag_DocumentTypeCode      = documento.Cs_tag_InvoiceTypeCode;
                                linea.Cs_tag_DocumentSerialID      = documento.Cs_tag_ID.Split('-')[0].ToString();
                                linea.Cs_tag_DocumentNumberID      = documento.Cs_tag_ID.Split('-')[1].ToString();
                                linea.Cs_tag_VoidReasonDescription = "";
                                linea.Cs_pr_IDDocumentoRelacionado = Id_Documento;
                                linea.cs_pxInsertar(false, true);
                                documento.Cs_pr_ComunicacionBaja = idRetorno;        //Relación de comunicación de baja.
                                documento.cs_pxActualizar(false, false);
                            }
                        }
                        else if (tipoContenido == "1")
                        {        //retencion
                                 //Si la fecha de referencia del item es igual a la fecha de referencia de su grupo, agregar
                            clsEntityRetention documento = new clsEntityRetention(localDB).cs_fxObtenerUnoPorId(Id_Documento);
                            if (documento.Cs_tag_IssueDate == fecha_comunicacion)
                            {
                                linea = new clsEntityVoidedDocuments_VoidedDocumentsLine(localDB);
                                linea.Cs_pr_VoidedDocuments_VoidedDocumentsLine_Id = Guid.NewGuid().ToString();
                                linea.Cs_pr_VoidedDocuments_Id     = idRetorno;
                                linea.Cs_tag_LineID                = "";
                                linea.Cs_tag_DocumentTypeCode      = "20";
                                linea.Cs_tag_DocumentSerialID      = documento.Cs_tag_Id.Split('-')[0].ToString();
                                linea.Cs_tag_DocumentNumberID      = documento.Cs_tag_Id.Split('-')[1].ToString();
                                linea.Cs_tag_VoidReasonDescription = "";
                                linea.Cs_pr_IDDocumentoRelacionado = Id_Documento;
                                linea.cs_pxInsertar(false, true);
                                documento.Cs_pr_Reversion = idRetorno;        //Relación de comunicación de baja.
                                documento.cs_pxActualizar(false, false);
                            }
                        }
                        doc_agregados.Add(documento_nuevo.Cs_tag_ID);
                    }
                    //1. Buscar un resumen diario con la fecha de referencia que sea la misma del documento a dar de baja.
                    //2. Si ya existe, actualizar.
                    //3. Si no existe, agregar.


                    /*Buscar algún documento que tenga estado "sin estado"
                     * SI ENCUENTRA
                     *  Actualizar los items no repetidos.
                     * NO
                     *  Agregar documento de comunicación de baja
                     *  Agregar los items. */
                    if (docs_no_agregados.Count > 0)
                    {
                        foreach (string doc in docs_no_agregados)
                        {
                            mensaje += doc + "\n";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                clsBaseLog.cs_pxRegistarAdd("Comunicación de Baja Factura DBF: " + ex.ToString());
            }

            return(mensaje);
        }
        /// <summary>
        /// METODO PARA PROCESAR DOCUMENTOS A DAR DE BAJA FEI2-222 29-05-2017
        /// </summary>
        /// <param name="DocumentosADarDeBaja"></param>
        /// <param name="tipoContenido"></param>
        /// <returns></returns>
        public string cs_pxProcesarComunicacionBaja(List <string> DocumentosADarDeBaja, string tipoContenido)
        {
            string mensaje = string.Empty;

            try
            {
                //Buscar grupos de fechas seleccionadas y por cada grupo debe crear un archivo de comunicación de baja.
                #region "AGRUPAR POR COMUNICACIÓN DE BAJA"
                List <string> grupo             = new List <string>(); //Crear grupos de fecha por IssueDate - FECHA DE EMISION
                List <string> docs_no_agregados = new List <string>(); //Lista de doccumentos no agregados
                //Recorrer los documentos a dar de baja para agregar asu respectiva comunicacion de baja.
                foreach (var documento_id in DocumentosADarDeBaja)
                {
                    //Si los comprobantes son facturas notas y/o boletas.
                    if (tipoContenido == "0")
                    {
                        clsEntityDocument document = new clsEntityDocument(localbd).cs_fxObtenerUnoPorId(documento_id);
                        if (document.Cs_pr_ComunicacionBaja.Trim().Length <= 0)
                        {
                            //Verificar los 7 dias anteriores al dia de hoy para permitir agregar a resumen diario.
                            string fechaEmision = document.Cs_tag_IssueDate;
                            if (fechaEmision == DateTime.Now.ToString("yyyy-MM-dd") ||
                                fechaEmision == DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") ||
                                fechaEmision == DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd") ||
                                fechaEmision == DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd") ||
                                fechaEmision == DateTime.Now.AddDays(-4).ToString("yyyy-MM-dd") ||
                                fechaEmision == DateTime.Now.AddDays(-5).ToString("yyyy-MM-dd") ||
                                fechaEmision == DateTime.Now.AddDays(-6).ToString("yyyy-MM-dd") ||
                                fechaEmision == DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"))
                            {
                                int count = 0;
                                foreach (var item_grupo in grupo)
                                {
                                    if (fechaEmision == item_grupo)
                                    {
                                        count++;
                                    }
                                }
                                if (count <= 0)//Si no existe el elemento en la lista, que se agregue.
                                {
                                    grupo.Add(fechaEmision);
                                }
                            }
                            else
                            {
                                docs_no_agregados.Add(document.Cs_tag_ID);
                            }
                        }
                    }
                    else if (tipoContenido == "1")
                    {
                        //Cuando se agregan tipo de documentos retencion
                        clsEntityRetention document = new clsEntityRetention(localbd).cs_fxObtenerUnoPorId(documento_id);
                        if (document.Cs_pr_Reversion.Trim().Length <= 0)
                        {
                            //Asignar valor a fecha de emision.
                            string fechaEmision = document.Cs_tag_IssueDate;

                            int count = 0;
                            foreach (var item_grupo in grupo)
                            {
                                if (fechaEmision == item_grupo)
                                {
                                    count++;
                                }
                            }
                            if (count <= 0)//Si no existe el elemento en la lista, que se agregue.
                            {
                                grupo.Add(fechaEmision);
                            }
                        }
                    }
                }
                #endregion
                //Crear grupos de fecha por IssueDate - FechaEmision
                List <string>            doc_agregados = new List <string>();
                clsEntityVoidedDocuments comunicacion_baja;
                if (DocumentosADarDeBaja.Count > 0)
                {
                    //Si existen documentos a dar de baja por grupos.
                    foreach (var fecha_comunicacion in grupo)
                    {
                        //Buscar comunicacion de baja existente.
                        string documento_baja_existente = new clsEntityVoidedDocuments(localbd).cs_pxObtenerDocumentoComuninicacionBajaExisente(fecha_comunicacion, tipoContenido);
                        if (documento_baja_existente != "")
                        {
                            //Si existe comunicacion de baja Agregar los comprobantes al que ya se encuentra creado.
                            bool agregado = new clsEntityVoidedDocuments(localbd).cs_pxComunicacionBajaActualizar(DocumentosADarDeBaja, documento_baja_existente, tipoContenido);
                            if (agregado == true)
                            {
                                //Si se han agregado los comprobantes actualizar el nombre de la comunicacion de baja en caso se este agregando a otro que se haya generado anteriormente.
                                comunicacion_baja = new clsEntityVoidedDocuments(localbd).cs_fxObtenerUnoPorId(documento_baja_existente);
                                comunicacion_baja.Cs_tag_IssueDate = DateTime.Now.ToString("yyyy-MM-dd");
                                string correlativo = comunicacion_baja.Cs_tag_ID.Split('-')[2];
                                if (tipoContenido == "0")
                                {//Facturas Boletas y Notas
                                    comunicacion_baja.Cs_tag_ID = "RA-" + comunicacion_baja.Cs_tag_IssueDate.Replace("-", "") + "-" + correlativo;
                                }
                                else if (tipoContenido == "1")
                                {//Retencion
                                    comunicacion_baja.Cs_tag_ID = "RR-" + comunicacion_baja.Cs_tag_IssueDate.Replace("-", "") + "-" + correlativo;
                                }
                                comunicacion_baja.cs_pxActualizar(false, false);
                                doc_agregados.Add(comunicacion_baja.Cs_tag_ID);
                            }
                        }
                        else
                        {
                            //Crear documento de comunicación de baja ya que no existe
                            string documento_nuevo_id = Guid.NewGuid().ToString();
                            clsEntityVoidedDocuments documento_nuevo = new clsEntityVoidedDocuments(localbd);
                            documento_nuevo.Cs_pr_VoidedDocuments_Id = documento_nuevo_id;
                            documento_nuevo.Cs_tag_ReferenceDate     = fecha_comunicacion;//DateTime.Now.ToString("yyyy-MM-dd");
                            documento_nuevo.Cs_tag_IssueDate         = DateTime.Now.ToString("yyyy-MM-dd");
                            if (tipoContenido == "0")
                            {
                                documento_nuevo.Cs_tag_ID = "RA-" + documento_nuevo.Cs_tag_IssueDate.Replace("-", "") + "-" + new clsEntityVoidedDocuments(localbd).cs_fxObtenerCorrelativo("0");
                            }
                            else if (tipoContenido == "1")
                            {
                                documento_nuevo.Cs_tag_ID = "RR-" + documento_nuevo.Cs_tag_IssueDate.Replace("-", "") + "-" + new clsEntityVoidedDocuments(localbd).cs_fxObtenerCorrelativo("1");
                            }
                            documento_nuevo.Cs_tag_AccountingSupplierParty_CustomerAssignedAccountID = declarante.Cs_pr_Ruc;
                            documento_nuevo.Cs_tag_AccountingSupplierParty_AdditionalAccountID       = "6";
                            documento_nuevo.Cs_tag_AccountingSupplierParty_Party_PartyLegalEntity_RegistrationName = declarante.Cs_pr_RazonSocial;
                            documento_nuevo.Cs_pr_Ticket               = "";
                            documento_nuevo.Cs_pr_EstadoSCC            = "2";
                            documento_nuevo.Cs_pr_EstadoSUNAT          = "2";
                            documento_nuevo.Cs_pr_ComentarioSUNAT      = "";
                            documento_nuevo.Cs_pr_XML                  = "";
                            documento_nuevo.Cs_pr_CDR                  = "";
                            documento_nuevo.Cs_pr_DocumentoRelacionado = "";
                            documento_nuevo.Cs_pr_TipoContenido        = tipoContenido;
                            string idRetorno = documento_nuevo.cs_pxInsertar(false, false);
                            clsEntityVoidedDocuments_VoidedDocumentsLine linea;
                            //Amaro Quispe Jordy | 2017-07-05 | FEI2-220
                            //Se comento el codigo que agregaba los documentos enviados anteriormente.Por pedido de Tania.
                            //INI-MODIFICA-01

                            //Buscar el ultimo documento de comunicación de baja enviado con la fecha de referencia = fecha del grupo
                            //Si existe, adjuntar los items existentes a este nuevo documento

                            /*string id_comunicacion_de_baja_existente_para_adjuntar_registros_a_sustitutorio = new clsEntityVoidedDocuments(localbd).cs_pxObtenerDocumentoComuninicacionBajaExisente(fecha_comunicacion, true,tipoContenido);
                             * if (id_comunicacion_de_baja_existente_para_adjuntar_registros_a_sustitutorio != null && id_comunicacion_de_baja_existente_para_adjuntar_registros_a_sustitutorio.Trim().Length > 0)
                             * {
                             *  List<clsEntityVoidedDocuments_VoidedDocumentsLine> DocumentosDadosDeBajaConAnterioridad = new clsEntityVoidedDocuments_VoidedDocumentsLine(localbd).cs_fxObtenerTodoPorCabeceraId(id_comunicacion_de_baja_existente_para_adjuntar_registros_a_sustitutorio);
                             *  foreach (var itemx in DocumentosDadosDeBajaConAnterioridad)
                             *  {
                             *      if (tipoContenido == "0")
                             *      {
                             *          //facturas boletas y notas
                             *          clsEntityDocument documento = new clsEntityDocument(localbd).cs_fxObtenerUnoPorId(itemx.Cs_pr_IDDocumentoRelacionado);
                             *          //Agregar estos items y actualizar el id de comunicación de baja en el documento principal.
                             *          linea = new clsEntityVoidedDocuments_VoidedDocumentsLine(localbd);
                             *          linea.Cs_pr_VoidedDocuments_VoidedDocumentsLine_Id = Guid.NewGuid().ToString();
                             *          //linea.Cs_pr_VoidedDocuments_Id = itemx.Cs_pr_VoidedDocuments_Id;
                             *          //Jordy Amaro 09-12-16 FE-912
                             *          //CAMBIO DE ASOCIACION IDS
                             *          //Ini-Modifica
                             *          linea.Cs_pr_VoidedDocuments_Id = idRetorno;
                             *          //Fin-Modifica
                             *          linea.Cs_tag_LineID = itemx.Cs_tag_LineID;
                             *          linea.Cs_tag_DocumentTypeCode = itemx.Cs_tag_DocumentTypeCode;
                             *          linea.Cs_tag_DocumentSerialID = itemx.Cs_tag_DocumentSerialID;
                             *          linea.Cs_tag_DocumentNumberID = itemx.Cs_tag_DocumentNumberID;
                             *          linea.Cs_tag_VoidReasonDescription = itemx.Cs_tag_VoidReasonDescription;
                             *          linea.Cs_pr_IDDocumentoRelacionado = itemx.Cs_pr_IDDocumentoRelacionado;
                             *          linea.cs_pxInsertar(false, true);
                             *          documento.Cs_pr_ComunicacionBaja = idRetorno;//Relación de comunicación de baja.
                             *          documento.cs_pxActualizar(false, false);
                             *
                             *      }
                             *      else if (tipoContenido == "1")
                             *      {
                             *          //retencion
                             *          clsEntityRetention documento = new clsEntityRetention(localbd).cs_fxObtenerUnoPorId(itemx.Cs_pr_IDDocumentoRelacionado);
                             *          //Agregar estos items y actualizar el id de comunicación de baja en el documento principal.
                             *          linea = new clsEntityVoidedDocuments_VoidedDocumentsLine(localbd);
                             *          linea.Cs_pr_VoidedDocuments_VoidedDocumentsLine_Id = Guid.NewGuid().ToString();
                             *          //linea.Cs_pr_VoidedDocuments_Id = itemx.Cs_pr_VoidedDocuments_Id;
                             *          //Jordy Amaro 09-12-16 FE-912
                             *          //CAMBIO DE ASOCIACION IDS
                             *          //Ini-Modifica
                             *          linea.Cs_pr_VoidedDocuments_Id = idRetorno;
                             *          //Fin-Modifica
                             *          linea.Cs_tag_LineID = itemx.Cs_tag_LineID;
                             *          linea.Cs_tag_DocumentTypeCode = itemx.Cs_tag_DocumentTypeCode;
                             *          linea.Cs_tag_DocumentSerialID = itemx.Cs_tag_DocumentSerialID;
                             *          linea.Cs_tag_DocumentNumberID = itemx.Cs_tag_DocumentNumberID;
                             *          linea.Cs_tag_VoidReasonDescription = itemx.Cs_tag_VoidReasonDescription;
                             *          linea.Cs_pr_IDDocumentoRelacionado = itemx.Cs_pr_IDDocumentoRelacionado;
                             *          linea.cs_pxInsertar(false, true);
                             *          documento.Cs_pr_Reversion = idRetorno;//Relación de comunicación de baja reversion.
                             *          documento.cs_pxActualizar(false, false);
                             *
                             *      }
                             *
                             *  }
                             * }*/

                            //FIN-MODIFICA-01

                            //Recorrer los documentos a dar de Baja y  agregar las lineas.
                            foreach (var Item in DocumentosADarDeBaja)
                            {
                                if (tipoContenido == "0")
                                {//facturas boletas y notas
                                    //Si la fecha de referencia del item es igual a la fecha de referencia de su grupo, agregar
                                    clsEntityDocument documento = new clsEntityDocument(localbd).cs_fxObtenerUnoPorId(Item);
                                    if (documento.Cs_tag_IssueDate == fecha_comunicacion)
                                    {
                                        linea = new clsEntityVoidedDocuments_VoidedDocumentsLine(localbd);
                                        linea.Cs_pr_VoidedDocuments_VoidedDocumentsLine_Id = Guid.NewGuid().ToString();
                                        linea.Cs_pr_VoidedDocuments_Id     = idRetorno;
                                        linea.Cs_tag_LineID                = "";
                                        linea.Cs_tag_DocumentTypeCode      = documento.Cs_tag_InvoiceTypeCode;
                                        linea.Cs_tag_DocumentSerialID      = documento.Cs_tag_ID.Split('-')[0].ToString();
                                        linea.Cs_tag_DocumentNumberID      = documento.Cs_tag_ID.Split('-')[1].ToString();
                                        linea.Cs_tag_VoidReasonDescription = "";
                                        linea.Cs_pr_IDDocumentoRelacionado = Item;
                                        linea.cs_pxInsertar(false, true);
                                        documento.Cs_pr_ComunicacionBaja = idRetorno;//Relación de comunicación de baja.
                                        documento.cs_pxActualizar(false, false);
                                    }
                                }
                                else if (tipoContenido == "1")
                                {//retencion
                                 //Si la fecha de referencia del item es igual a la fecha de referencia de su grupo, agregar
                                    clsEntityRetention documento = new clsEntityRetention(localbd).cs_fxObtenerUnoPorId(Item);
                                    if (documento.Cs_tag_IssueDate == fecha_comunicacion)
                                    {
                                        linea = new clsEntityVoidedDocuments_VoidedDocumentsLine(localbd);
                                        linea.Cs_pr_VoidedDocuments_VoidedDocumentsLine_Id = Guid.NewGuid().ToString();
                                        linea.Cs_pr_VoidedDocuments_Id     = idRetorno;
                                        linea.Cs_tag_LineID                = "";
                                        linea.Cs_tag_DocumentTypeCode      = "20";
                                        linea.Cs_tag_DocumentSerialID      = documento.Cs_tag_Id.Split('-')[0].ToString();
                                        linea.Cs_tag_DocumentNumberID      = documento.Cs_tag_Id.Split('-')[1].ToString();
                                        linea.Cs_tag_VoidReasonDescription = "";
                                        linea.Cs_pr_IDDocumentoRelacionado = Item;
                                        linea.cs_pxInsertar(false, true);
                                        documento.Cs_pr_Reversion = idRetorno;//Relación de comunicación de baja.
                                        documento.cs_pxActualizar(false, false);
                                    }
                                }
                            }
                            doc_agregados.Add(documento_nuevo.Cs_tag_ID);
                        }
                    }
                    //1. Buscar un resumen diario con la fecha de referencia que sea la misma del documento a dar de baja.
                    //2. Si ya existe, actualizar.
                    //3. Si no existe, agregar.


                    /*Buscar algún documento que tenga estado "sin estado"
                     * SI ENCUENTRA
                     *  Actualizar los items no repetidos.
                     * NO
                     *  Agregar documento de comunicación de baja
                     *  Agregar los items. */
                    if (docs_no_agregados.Count > 0)
                    {
                        foreach (string doc in docs_no_agregados)
                        {
                            mensaje += doc + "\n";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                clsBaseLog.cs_pxRegistarAdd("procesarcomunicacion baja" + ex.ToString());
            }

            return(mensaje);
        }