private async void CrearXmlResumen() { try { vFechaXml = "RC-" + Convert.ToString(DtpFecha.Value.Year); vFechaXml += Modfunc.Derecha("0" + Convert.ToString(DtpFecha.Value.Month), 2); vFechaXml += Modfunc.Derecha("0" + Convert.ToString(DtpFecha.Value.Day), 2); vFechaXml += "-004"; ResumenDiarioNuevo ResumenDiario = new ResumenDiarioNuevo(); ResumenDiario.IdDocumento = vFechaXml; ResumenDiario.FechaEmision = Convert.ToString(DtpFecha.Text); ResumenDiario.FechaReferencia = Convert.ToString(DtpFecha.Text); ResumenDiario.Emisor = CrearEmisor(DtEmpresa); ResumenDiario.Resumenes = new List <GrupoResumenNuevo>(); for (int ii = 0; ii <= DtDocumentos.Rows.Count - 1; ii++) { decimal vDscto = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteDsctoGlobal"]) + Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteDsctoItem"]); GrupoResumenNuevo DocumentoResumenItem = new GrupoResumenNuevo(); DocumentoResumenItem.Id = 13 + 1; DocumentoResumenItem.TipoDocumento = Convert.ToString(DtDocumentos.Rows[ii]["TipoDocumento"]); DocumentoResumenItem.Serie = Convert.ToString(DtDocumentos.Rows[ii]["SerieDocumento"]); DocumentoResumenItem.CorrelativoInicio = Convert.ToInt32(DtDocumentos.Rows[ii]["NumeroDocumento"]); DocumentoResumenItem.CorrelativoFin = Convert.ToInt32(DtDocumentos.Rows[ii]["NumeroDocumentoFinal"]); DocumentoResumenItem.Gravadas = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteGravado"]); DocumentoResumenItem.Inafectas = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteinafecto"]); DocumentoResumenItem.Exoneradas = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteexonerado"]); DocumentoResumenItem.Gratuitas = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteGratuitas"]); DocumentoResumenItem.TotalIsc = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteisc"]); DocumentoResumenItem.TotalIgv = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteIgv"]); DocumentoResumenItem.TotalDescuentos = vDscto; DocumentoResumenItem.TotalVenta = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteventa"]); ResumenDiario.Resumenes.Add(DocumentoResumenItem); } string _metodoApi = "api/GenerarResumenDiario/v1"; var response = await _client.PostAsJsonAsync(_metodoApi, ResumenDiario); var respuesta = await response.Content.ReadAsAsync <DocumentoResponse>(); if (!respuesta.Exito) { throw new ApplicationException(respuesta.MensajeError); } String vRutaXml = Convert.ToString(DtEmpresa.Rows[0]["CarpetaEnviosXml"]); RutaArchivo = Convert.ToString(DtEmpresa.Rows[0]["EmpresaRuc"]) + "-" + vFechaXml; RutaArchivo = Path.Combine(vRutaXml, $"{RutaArchivo}.xml"); File.WriteAllBytes(RutaArchivo, Convert.FromBase64String(respuesta.TramaXmlSinFirma)); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void ArmarResumenElectronico() { try { DocumentoVentaGP docGP = new DocumentoVentaGP(); docGP.GetDatosResumenBoletas(this.Sopnumbe, this.Soptype); _resumenElectronico = new ResumenDiarioNuevo() { IdDocumento = docGP.ResumenCab.numResumenDiario, FechaEmision = docGP.ResumenCab.docdate.ToString(FormatoFecha), //DateTime.Today.ToString(FormatoFecha), FechaReferencia = docGP.ResumenCab.docdate.ToString(FormatoFecha), Emisor = new Contribuyente() { NroDocumento = docGP.ResumenCab.emisorNroDoc, TipoDocumento = docGP.ResumenCab.emisorTipoDoc, Direccion = docGP.ResumenCab.emisorDireccion, Urbanizacion = docGP.ResumenCab.emisorUrbanizacion, Departamento = docGP.ResumenCab.emisorDepartamento, Provincia = docGP.ResumenCab.emisorProvincia, Distrito = docGP.ResumenCab.emisorDistrito, NombreComercial = docGP.ResumenCab.emisorNombre, NombreLegal = docGP.ResumenCab.emisorNombre, Ubigeo = docGP.ResumenCab.emisorUbigeo }, Resumenes = new List <GrupoResumenNuevo>() }; int i = 1; foreach (vwCfdiGeneraResumenDiario re in docGP.LDocResumenLineas) { var grn = new GrupoResumenNuevo() { Id = i, TipoDocumento = re.tipoDocumento, IdDocumento = re.sopnumbe, NroDocumentoReceptor = re.receptorNroDoc, TipoDocumentoReceptor = re.receptorTipoDoc, CodigoEstadoItem = 1, Moneda = re.moneda, TotalVenta = Convert.ToDecimal(re.total), TotalDescuentos = Convert.ToDecimal(re.totalDescuento), Gratuitas = Convert.ToDecimal(re.totalGratuito), Gravadas = Convert.ToDecimal(re.totalIvaImponible), Exoneradas = Convert.ToDecimal(re.totalExonerado), Inafectas = Convert.ToDecimal(re.totalInafecta), TotalIgv = Convert.ToDecimal(re.totalIva), DocumentoRelacionado = (re.tipoDocumento == "07" || re.tipoDocumento == "08") ? re.sopnumbeTo : null, TipoDocumentoRelacionado = (re.tipoDocumento == "07" || re.tipoDocumento == "08") ? re.tipoDocumentoTo : null //IdDocumento = re.serie, //Serie = re.serie, //CorrelativoInicio = Convert.ToInt32(re.iniRango), //CorrelativoFin = Convert.ToInt32(re.finRango), }; _resumenElectronico.Resumenes.Add(grn); i++; } } catch (Exception) { throw; } }
private async void CrearXmlResumen2() { try { vFechaXml = "RC-" + Convert.ToString(DtpFechaEnvioDoc.Value.Year); vFechaXml += ModFunc.Derecha("0" + Convert.ToString(DtpFechaEnvioDoc.Value.Month), 2); vFechaXml += ModFunc.Derecha("0" + Convert.ToString(DtpFechaEnvioDoc.Value.Day), 2); vFechaXml += "-00" + Convert.ToString(DtDocumentos.Rows[0]["item"]); ResumenDiarioNuevo ResumenDiario = new ResumenDiarioNuevo { IdDocumento = vFechaXml, FechaEmision = Convert.ToString(DtpFechaEnvioDoc.Text), FechaReferencia = Convert.ToString(DtpFechaDoc.Text), Emisor = CrearEmisor(DtEmpresa), Resumenes = new List <GrupoResumenNuevo>() }; for (int ii = 0; ii <= DtDocumentos.Rows.Count - 1; ii++) { decimal vDscto = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteDsctoGlobal"]); string vNroDocumento = Convert.ToString(DtDocumentos.Rows[ii]["clienteID"]); string vTipoIdentidad = Convert.ToString(DtDocumentos.Rows[ii]["IdentidadID"]); string vNombreLegal = Convert.ToString(DtDocumentos.Rows[ii]["ClienterazonSocial"]); GrupoResumenNuevo DocumentoResumenItem = new GrupoResumenNuevo(); string vIdDocumento = DocumentoResumenItem.Serie = Convert.ToString(DtDocumentos.Rows[ii]["SerieDocumento"]) + "-"; vIdDocumento += DtDocumentos.Rows[ii]["NumeroDocumento"]; DocumentoResumenItem.Id = ii + 1; DocumentoResumenItem.TipoDocumento = Convert.ToString(DtDocumentos.Rows[ii]["DocumentoID"]); DocumentoResumenItem.IdDocumento = vIdDocumento; DocumentoResumenItem.NroDocumentoReceptor = vNroDocumento; DocumentoResumenItem.TipoDocumentoReceptor = vTipoIdentidad; DocumentoResumenItem.CodigoEstadoItem = 1; string vNroModifica = Convert.ToString(DtDocumentos.Rows[ii]["SeriedocumentoModifica"]) + "-" + Convert.ToString(DtDocumentos.Rows[ii]["NumeroDocumentoModifica"]); if (DocumentoResumenItem.TipoDocumento == "07" || DocumentoResumenItem.TipoDocumento == "08") { DocumentoResumenItem.TipoDocumentoRelacionado = Convert.ToString(DtDocumentos.Rows[ii]["TipoDocumentoModifica"]); DocumentoResumenItem.DocumentoRelacionado = vNroModifica; } DocumentoResumenItem.Moneda = "PEN"; DocumentoResumenItem.Gravadas = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteGravado"]); DocumentoResumenItem.Inafectas = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteinafecto"]); DocumentoResumenItem.Exoneradas = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteexonerado"]); DocumentoResumenItem.Gratuitas = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteGratuitas"]); DocumentoResumenItem.TotalIsc = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteisc"]); DocumentoResumenItem.TotalIgv = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteIgv"]); DocumentoResumenItem.TotalDescuentos = vDscto; DocumentoResumenItem.TotalVenta = Convert.ToDecimal(DtDocumentos.Rows[ii]["TotalImporteventa"]); DocumentoResumenItem.TotalOtrosImpuestos = 0; DocumentoResumenItem.CodigoEstadoItem = 1; DocumentoResumenItem.Exportacion = 0; ResumenDiario.Resumenes.Add(DocumentoResumenItem); } string _metodoApi = "api/GenerarResumenDiario/v2"; var response = await _client.PostAsJsonAsync(_metodoApi, ResumenDiario); var respuesta = await response.Content.ReadAsAsync <DocumentoResponse>(); if (!respuesta.Exito) { throw new ApplicationException(respuesta.MensajeError); } vRutaArchivoXML = vFechaXml; vRutaArchivoXML = Path.Combine(vRutaXml, $"{vRutaArchivoXML}.xml"); File.WriteAllBytes(vRutaArchivoXML, Convert.FromBase64String(respuesta.TramaXmlSinFirma)); ModFunc.ActualizaItemDia(Ctr_AyuEmpresas.Codigo, DtpFechaDoc.Text, VGCnxSqlE); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public ResumenDiario Data(List <Data_Documentos> data_Documentos) { DateTime dateTime = DateTime.Now; ResumenDiario resumenDiario; ReadGeneralData readGeneralData = new ReadGeneralData(); try { Data_CabeceraDocumento cabeceraDocumento = new Data_CabeceraDocumento(data_Documentos[0].IdCabeceraDocumento); cabeceraDocumento.Read_CabeceraDocumento(); Data_Contribuyente data_Emisor = new Data_Contribuyente(data_Documentos[0].IdEmisor); data_Emisor.Read_Contribuyente(); int numeracion = 0; string mes = dateTime.Month < 10 ? $"0{dateTime.Month}" : dateTime.Month.ToString(); string dia = dateTime.Day < 10 ? $"0{dateTime.Day}" : dateTime.Day.ToString(); try { numeracion = readGeneralData.GetScalarValueINT("[dbo].[Query_Scalar_GetValue_CantidadDocsDia]", "@IdDatosFox", data_Documentos[0].IdDatosFox); } catch (Exception) { numeracion++; } resumenDiario = new ResumenDiario() // Documento principal { IdDocumento = $"RC-{dateTime.Year}{mes}{dia}-{numeracion}", FechaEmision = dateTime.ToString(), FechaReferencia = data_Documentos[0].FechaEmision, Emisor = data_Emisor, Resumenes = new List <GrupoResumenNuevo>() }; int contador = 1; foreach (var data_Documento in data_Documentos) { Data_CabeceraDocumento data_CabeceraDocumento = new Data_CabeceraDocumento(data_Documento.IdCabeceraDocumento); data_CabeceraDocumento.Read_CabeceraDocumento(); Data_Contribuyente data_Receptor = new Data_Contribuyente(data_CabeceraDocumento.IdReceptor); data_Receptor.Read_Contribuyente(); var resumen = new GrupoResumenNuevo() { Id = contador, TipoDocumento = data_Documento.TipoDocumento, Serie = data_Documento.SerieCorrelativo, Receptor = data_Receptor, TotalVenta = data_CabeceraDocumento.ImporteTotalVenta, Moneda = data_CabeceraDocumento.Moneda, Gravadas = data_CabeceraDocumento.Gravadas, Exoneradas = data_CabeceraDocumento.Exoneradas, Inafectas = data_CabeceraDocumento.Inafectas, Exportaciones = data_CabeceraDocumento.Exportaciones, Gratuitas = data_CabeceraDocumento.Gratuitas, TotalDescuentos = data_CabeceraDocumento.TotalDescuento, }; Data_DocumentoRelacionado data_DocumentoRelacionado = new Data_DocumentoRelacionado(data_Documento.IdCabeceraDocumento); List <DocumentoRelacionado> documentoRelacionados = data_DocumentoRelacionado.Read_DocumentoRelacionado(); if (documentoRelacionados.Count > 0) { resumen.DocumentoRelacionado = documentoRelacionados[0].NroDocumento ?? string.Empty; // Sólo habrá un doc relacionado para cada boleta } Data_Discrepancia data_Discrepancia = new Data_Discrepancia(data_Documento.IdCabeceraDocumento); List <Discrepancia> discrepancias = data_Discrepancia.Read_DiscrepanciaDocumento(); if (discrepancias.Count > 0) { resumen.CodigoEstadoItem = Convert.ToInt32(discrepancias[0].Tipo ?? string.Empty); // // en la documentación dice que es el valor del tipo de discrepancia catalogo 9 } else { resumen.CodigoEstadoItem = 1; // Poca información respecto a lo que va aquí } #region TotalImpuestos Data_TotalImpuesto data_TotalImpuesto = new Data_TotalImpuesto(data_Documento.IdCabeceraDocumento); List <TotalImpuesto> totalImpuestos = data_TotalImpuesto.Read_TotalImpuestos(1); // El parámetro -> 1 <- es indicativo de que es por cada línea foreach (var st_totalImpuesto in totalImpuestos) { Data_SubTotalImpuesto data_SubTotalImpuesto = new Data_SubTotalImpuesto(st_totalImpuesto.IdTotalImpuestos); List <SubTotalImpuestos> subTotalImpuestos = data_SubTotalImpuesto.Read_SubTotalImpuesto(); st_totalImpuesto.SubTotalesImpuestos = subTotalImpuestos; } resumen.TotalImpuestos = totalImpuestos; #endregion TotalImpuestos resumenDiario.Resumenes.Add(resumen); contador++; } } catch (Exception ex) { resumenDiario = new ResumenDiario(); } return(resumenDiario); }