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());
     }
 }
        public List <clsEntityRetention> cs_pxObtenerDocumentosPorComunicacionBaja_n(string id)
        {
            List <clsEntityRetention> lista_documentos;
            clsEntityRetention        item;
            OdbcDataReader            datos = null;

            try
            {
                //Buscar todos los documentos en esta comunicación de baja
                string sql = "SELECT * FROM cs_VoidedDocuments_VoidedDocumentsLine WHERE 1=1";
                //string sql = "SELECT * FROM " + cs_cmTabla + " WHERE 1=1";
                //sql += " AND cp3 ='" + clsBaseUtil.cs_fxComprobantesElectronicos_codigo(comprobantetipo) + "' ";
                sql += " AND cs_VoidedDocuments_Id =" + id + " ";
                //cn = new clsBaseConexion();
                OdbcConnection cs_pxConexion_basedatos = new OdbcConnection(localDB.cs_prConexioncadenabasedatos());
                cs_pxConexion_basedatos.Open();
                datos = new OdbcCommand(sql, cs_pxConexion_basedatos).ExecuteReader();
                List <string> fila2 = new List <string>();
                lista_documentos = new List <clsEntityRetention>();
                while (datos.Read())//Obtener los Id de los documentos relacionados
                {
                    fila2.Add(datos[7].ToString());
                }
                cs_pxConexion_basedatos.Close();
                if (fila2.Count > 0)//Entonces buscar los documentos y agregarlos a la lista
                {
                    foreach (var idDoc in fila2)
                    {
                        item = new clsEntityRetention(localDB).cs_fxObtenerUnoPorId(idDoc);
                        lista_documentos.Add(item);
                    }
                }
                return(lista_documentos);
            }
            catch (Exception ex)
            {
                clsBaseMensaje.cs_pxMsgEr("ERR6", ex.ToString());
                return(null);
            }
        }
        public bool cs_pxEliminarDocumento(string Id)
        {
            bool resultado = false;

            try
            {
                //Eliminar la cabecera y todos sus registros.
                clsEntityRetention Document = new clsEntityRetention(localDB).cs_fxObtenerUnoPorId(Id);
                clsEntityRetention_RetentionLine Document_Line = new clsEntityRetention_RetentionLine(localDB);

                foreach (var item in Document_Line.cs_fxObtenerTodoPorCabeceraId(Id))
                {
                    item.cs_pxElimnar(false);
                }

                Document.cs_pxElimnar(false);
                resultado = true;
            }
            catch (Exception ex)
            {
                clsBaseLog.cs_pxRegistarAdd(" clsEntityRetention cs_pxEliminarDocumento " + ex.ToString());
            }
            return(resultado);
        }
        public List <clsEntityRetention> cs_pxObtenerFiltroPrincipalReversion(string estadocomprobantesunat, string estadocomprobantescc, string fechainicio, string fechafin)
        {
            List <clsEntityRetention> lista_documentos;
            clsEntityRetention        item;

            try
            {
                lista_documentos = new List <clsEntityRetention>();
                OdbcDataReader datos = null;
                string         sql   = "SELECT * FROM " + cs_cmTabla + " WHERE 1=1";

                if (estadocomprobantescc != "")
                {
                    sql += " AND cp32 ='" + estadocomprobantescc + "' ";
                }
                if (estadocomprobantesunat != "")
                {
                    sql += " AND cp33 ='" + estadocomprobantesunat + "' ";
                }
                if (fechainicio != "" && fechafin != "")
                {
                    sql += " AND cp2 >= '" + fechainicio + "' AND cp2 <= '" + fechafin + "'";
                }
                sql += "AND (cp37 = '' or cp37 is null)";
                //cn = new clsBaseConexion();
                OdbcConnection cs_pxConexion_basedatos = new OdbcConnection(localDB.cs_prConexioncadenabasedatos());
                cs_pxConexion_basedatos.Open();
                datos = new OdbcCommand(sql, cs_pxConexion_basedatos).ExecuteReader();
                while (datos.Read())
                {
                    item = new clsEntityRetention(localDB);
                    item.Cs_pr_Retention_id                                           = datos[0].ToString();
                    item.Cs_tag_Id                                                    = datos[1].ToString();
                    item.Cs_tag_IssueDate                                             = datos[2].ToString();
                    item.Cs_tag_PartyIdentification_Id                                = datos[3].ToString();
                    item.Cs_tag_PartyIdentificacion_SchemeId                          = datos[4].ToString();
                    item.Cs_tag_PartyName                                             = datos[5].ToString();
                    item.Cs_tag_PostalAddress_Id                                      = datos[6].ToString();
                    item.Cs_tag_PostalAddress_StreetName                              = datos[7].ToString();
                    item.Cs_tag_PostalAddress_CitySubdivisionName                     = datos[8].ToString();
                    item.Cs_tag_PostalAddress_CityName                                = datos[9].ToString();
                    item.Cs_tag_PostalAddress_CountrySubEntity                        = datos[10].ToString();
                    item.Cs_tag_PostalAddress_District                                = datos[11].ToString();
                    item.Cs_tag_PostalAddress_Country_IdentificationCode              = datos[12].ToString();
                    item.Cs_tag_PartyLegalEntity_RegistrationName                     = datos[13].ToString();
                    item.Cs_tag_ReceiveParty_PartyIdentification_Id                   = datos[14].ToString();
                    item.Cs_tag_ReceiveParty_PartyIdentification_SchemeId             = datos[15].ToString();
                    item.Cs_tag_ReceiveParty_PartyName_Name                           = datos[16].ToString();
                    item.Cs_tag_ReceiveParty_PostalAddress_Id                         = datos[17].ToString();
                    item.Cs_tag_ReceiveParty_PostalAddress_StreetName                 = datos[18].ToString();
                    item.Cs_tag_ReceiveParty_PostalAddress_CitySubdivisionName        = datos[19].ToString();
                    item.Cs_tag_ReceiveParty_PostalAddress_CityName                   = datos[20].ToString();
                    item.Cs_tag_ReceiveParty_PostalAddress_CountrySubentity           = datos[21].ToString();
                    item.Cs_tag_ReceiveParty_PostalAddress_District                   = datos[22].ToString();
                    item.Cs_tag_ReceiveParty_PostalAddress_Country_IdentificationCode = datos[23].ToString();
                    item.Cs_tag_ReceiveParty_PartyLegalEntity_RegistrationName        = datos[24].ToString();
                    item.Cs_tag_SUNATRetentionSystemCode                              = datos[25].ToString();
                    item.Cs_tag_SUNATRetentionPercent                                 = datos[26].ToString();
                    item.Cs_tag_Note                                                  = datos[27].ToString();
                    item.Cs_tag_TotalInvoiceAmount                                    = datos[28].ToString();
                    item.Cs_tag_TotalInvoiceAmount_CurrencyId                         = datos[29].ToString();
                    item.Cs_tag_TotalPaid                                             = datos[30].ToString();
                    item.Cs_tag_TotalPaid_CurrencyId                                  = datos[31].ToString();
                    item.Cs_pr_EstadoSCC                                              = datos[32].ToString();
                    item.Cs_pr_EstadoSUNAT                                            = datos[33].ToString();
                    item.Cs_pr_ComentarioSUNAT                                        = datos[34].ToString();
                    item.Cs_pr_XML                                                    = datos[35].ToString();
                    item.Cs_pr_CDR                                                    = datos[36].ToString();
                    item.Cs_pr_Reversion                                              = datos[37].ToString();
                    item.Cs_pr_Reversion_Anterior                                     = datos[38].ToString();
                    item.Cs_pr_FechaEnvio                                             = datos[39].ToString();
                    item.Cs_pr_FechaRecepcion                                         = datos[40].ToString();
                    lista_documentos.Add(item);
                }
                cs_pxConexion_basedatos.Close();
                return(lista_documentos);
            }
            catch (Exception ex)
            {
                clsBaseLog.cs_pxRegistarAdd("Listar retention " + ex.ToString());
                return(null);
            }
        }
Beispiel #5
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);
            }
        }