Ejemplo n.º 1
0
        public RespuestaComunConArchivo2 ConsultarTicketFE(string RutaWS, string usuario, string clave, string RucEmisor, string NroTicket,
                                                           string IdentificadorArchivo, string CarpetaCdr)
        {
            ServicioEnviarComprobanteFE.FEServiceClient         ServicioFE     = new ServicioEnviarComprobanteFE.FEServiceClient();
            ServicioEnviarComprobanteFE.EnviarDocumentoResponse RespuestaSunat = ServicioFE.ObtenerTicket(RutaWS, usuario, clave, RucEmisor, NroTicket, IdentificadorArchivo, CarpetaCdr);

            RespuestaComunConArchivo2 objrespuesta = new RespuestaComunConArchivo2();

            objrespuesta.NombreArchivo    = RespuestaSunat.NombreArchivo;
            objrespuesta.Exito            = RespuestaSunat.Exito;
            objrespuesta.MensajeError     = RespuestaSunat.MensajeError;
            objrespuesta.Pila             = RespuestaSunat.Pila;
            objrespuesta.CodigoRespuesta  = RespuestaSunat.CodigoRespuesta;
            objrespuesta.MensajeRespuesta = RespuestaSunat.MensajeRespuesta;
            objrespuesta.TramaZipCdr      = RespuestaSunat.TramaZipCdr;
            return(objrespuesta);
        }
Ejemplo n.º 2
0
        public RespuestaComunConArchivo2 EnviarXMLFE(string RutaWS, string usuario, string clave, string RucEmisor,
                                                     string TipoDocumento, string IdentificadorArchivo, bool EsResumen, string CarpetaXML, string CarpetaCdr)
        {
            ServicioEnviarComprobanteFE.FEServiceClient           ServicioFE     = new ServicioEnviarComprobanteFE.FEServiceClient();
            ServicioEnviarComprobanteFE.RespuestaComunConArchivo2 RespuestaSunat = ServicioFE.EnviarXML(RutaWS, usuario, clave, RucEmisor,
                                                                                                        TipoDocumento, IdentificadorArchivo, EsResumen, CarpetaXML, CarpetaCdr);

            RespuestaComunConArchivo2 objrespuesta = new RespuestaComunConArchivo2();

            objrespuesta.NombreArchivo    = RespuestaSunat.NombreArchivo;
            objrespuesta.Exito            = RespuestaSunat.Exito;
            objrespuesta.MensajeError     = RespuestaSunat.MensajeError;
            objrespuesta.Pila             = RespuestaSunat.Pila;
            objrespuesta.CodigoRespuesta  = RespuestaSunat.CodigoRespuesta;
            objrespuesta.MensajeRespuesta = RespuestaSunat.MensajeRespuesta;
            objrespuesta.TramaZipCdr      = RespuestaSunat.TramaZipCdr;
            objrespuesta.NroTicket        = RespuestaSunat.NroTicket;
            return(objrespuesta);
        }
Ejemplo n.º 3
0
        private void BtnObtenerInformaciónTicket_Click(object sender, EventArgs e)
        {
            try
            {
                if (TdgProductosFormulados.RowCount > 0)
                {
                    string NumComprobante = this.TdgProductosFormulados.Columns["NumComprobante"].Value.ToString();
                    string EstadoSunat    = this.TdgProductosFormulados.Columns["EstadoSunat"].Value.ToString();
                    string TipoSunat      = this.TdgProductosFormulados.Columns["TipoSunat"].Value.ToString();
                    string NroTicket      = this.TdgProductosFormulados.Columns["NroTicket"].Value.ToString();
                    int    ComprobanteId  = Convert.ToInt32(this.TdgProductosFormulados.Columns["ComprobanteId"].Value.ToString());


                    NumComprobante = NumComprobante.Replace("RC-", "").Replace("RA-", "");


                    if ((EstadoSunat == "03" |
                         EstadoSunat == "04" |
                         EstadoSunat == "11" |
                         EstadoSunat == "12") & TipoSunat == "RC" | TipoSunat == "RA")
                    {
                        RespuestaComunConArchivo2 respu = objCL_Comprobante.ConsultarTicketFE(RutaWS, UsuarioSOL, ClaveSol, ruc, NroTicket, NumComprobante, RutaCDRFE);

                        if (respu.Exito)
                        {
                            //borramos los archivos
                            if (TipoSunat == "RC")
                            {
                                System.IO.File.Delete(rutaarchivos + ruc + "-" + TipoSunat + "-" + NumComprobante + ".RDI");
                            }
                            else if (TipoSunat == "RA")
                            {
                                System.IO.File.Delete(rutaarchivos + ruc + "-" + TipoSunat + "-" + NumComprobante + ".CBA");
                            }

                            //eliminar de la bd
                            objCL_Comprobante.EliminarFacturadorComprobantes(ruc + "-" + TipoSunat + "-" + NumComprobante, c1cboCia.SelectedValue.ToString());

                            //borramos las boletas seleccionadas
                            DataTable DT = objCL_Comprobante.ActualizarTicketBaja(ComprobanteId, respu.MensajeRespuesta);
                            foreach (DataRow DR in DT.Rows)
                            {
                                System.IO.File.Delete(rutaarchivos + ruc + "-" + DR["TipoSunat"].ToString() + "-" + DR["Comprobante"].ToString() + ".CAB");
                                System.IO.File.Delete(rutaarchivos + ruc + "-" + DR["TipoSunat"].ToString() + "-" + DR["Comprobante"].ToString() + ".DET");
                                System.IO.File.Delete(rutaarchivos + ruc + "-" + DR["TipoSunat"].ToString() + "-" + DR["Comprobante"].ToString() + ".LEY");
                                System.IO.File.Delete(rutaarchivos + ruc + "-" + DR["TipoSunat"].ToString() + "-" + DR["Comprobante"].ToString() + ".TRI");


                                //eliminar de la bd
                                objCL_Comprobante.EliminarFacturadorComprobantes(ruc + "-" + DR["TipoSunat"].ToString() + "-" + DR["Comprobante"].ToString(), c1cboCia.SelectedValue.ToString());
                            }
                        }

                        MessageBox.Show("Se actualizo correctamente la información del ticket", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        BtnBuscar_Click(null, null);
                    }
                    else
                    {
                        MessageBox.Show("Solo se puede consultar ticket de resumen y de baja y que ya hayan sido enviados.", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 4
0
        private void BtnEnviarFacturaOSE_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Seguro que desea actualizar la infomación?, esta acción no se puede deshacer,\nadicionalmente eliminará los archivos ya aceptados por sunat", "Aviso", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
            {
                DataSet   DS = objCL_Comprobante.ListarEnvioOSE(c1cboCia.SelectedValue.ToString(), Convert.ToDateTime(DtpFechaEnvioOSE.Value.ToShortDateString()));
                DataTable dt = DS.Tables[0];
                foreach (DataRow DR in dt.Rows)
                {
                    bool     esresumen = false;
                    DateTime?fecha     = null;
                    bool     hayError  = false;

                    string mensaje     = "";
                    string numcom      = "";
                    string estadosunat = "";
                    string NroTicket   = null;

                    string rutafirmado = rutaarchivos.Substring(0, rutaarchivos.Length - 5) + "FIRMA";

                    int td = 0;
                    td = Convert.ToInt16(DR["TipoComprobanteID"]);

                    numcom = DR["NumComprobante"].ToString();


                    if (DR["TipoSunat"].ToString() == "RC" | DR["TipoSunat"].ToString() == "RA")
                    {
                        esresumen = true;

                        //validamos que se haya generado todos los xml
                        DataTable Dtboletas       = objCL_Comprobante.ObtenerComprobantesResumen(Convert.ToInt32(DR["ComprobanteId"]));
                        string    listaSinGenerar = "";
                        foreach (DataRow Drbol in Dtboletas.Rows)
                        {
                            if (File.Exists(rutafirmado + @"\" + ruc + "-" + Drbol["TipoSunat"].ToString() + "-" + Drbol["Comprobante"] + ".xml") == false)
                            {
                                listaSinGenerar = listaSinGenerar + Drbol["TipoSunat"].ToString() + "-" + Drbol["Comprobante"] + ", ";
                                hayError        = true;
                                mensaje         = "No ha sido generado el XML de la(s) boleta(s) " + listaSinGenerar;
                            }
                        }
                    }

                    if (hayError)
                    {
                        estadosunat = "05";
                        objCL_Comprobante.ActualizarDesdeFacturadorSunat(c1cboCia.SelectedValue.ToString(), numcom, td, fecha, mensaje, estadosunat, NroTicket);
                        hayError = false;
                        continue;
                    }
                    RespuestaComunConArchivo2 respu = objCL_Comprobante.EnviarXMLFE(RutaWS, UsuarioSOL, ClaveSol, ruc, DR["TipoSunat"].ToString(), DR["Comprobante"].ToString(),
                                                                                    esresumen, rutafirmado, RutaCDRFE);

                    //elminamos archivos
                    if (respu.Exito == true)
                    {
                        if (DR["TipoSunat"].ToString() == "01" | DR["TipoSunat"].ToString() == "03")
                        {
                            System.IO.File.Delete(rutaarchivos + ruc + "-" + DR["TipoSunat"].ToString() + "-" + DR["Comprobante"].ToString() + ".CAB");
                            System.IO.File.Delete(rutaarchivos + ruc + "-" + DR["TipoSunat"].ToString() + "-" + DR["Comprobante"].ToString() + ".DET");
                            System.IO.File.Delete(rutaarchivos + ruc + "-" + DR["TipoSunat"].ToString() + "-" + DR["Comprobante"].ToString() + ".LEY");
                            System.IO.File.Delete(rutaarchivos + ruc + "-" + DR["TipoSunat"].ToString() + "-" + DR["Comprobante"].ToString() + ".TRI");
                        }


                        //tambien de la bd
                        objCL_Comprobante.EliminarFacturadorComprobantes(ruc + "-" + DR["TipoSunat"].ToString() + "-" + DR["Comprobante"].ToString(), c1cboCia.SelectedValue.ToString());

                        fecha       = DateTime.Now;
                        mensaje     = respu.MensajeRespuesta;
                        estadosunat = "03";

                        if (respu.NroTicket != "" & respu.NroTicket != null)
                        {
                            NroTicket = respu.NroTicket;
                        }
                    }
                    else
                    {
                        estadosunat = "05";
                        mensaje     = (respu.MensajeRespuesta == "" | respu.MensajeRespuesta == null) ? respu.MensajeError : respu.MensajeRespuesta;
                    }

                    //actualizamos en bd
                    objCL_Comprobante.ActualizarDesdeFacturadorSunat(c1cboCia.SelectedValue.ToString(), numcom, td, fecha, mensaje, estadosunat, NroTicket);
                }
                MessageBox.Show("Se termino de actualizar.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }