private NotasBase <InvoiceDetail> GetBase() { var baseNote = new NotasBase <InvoiceDetail> { SerieDocumento = _invoice.SerieDocumento, CorrelativoDocumento = new Random().Next(1, 100000).ToString(), FechaEmision = _invoice.FechaEmision, TipoDocumentoIdentidadEmisor = _invoice.TipoDocumentoIdentidadEmisor, RucEmisor = _invoice.RucEmisor, NombreRazonSocialEmisor = _invoice.NombreRazonSocialEmisor, NombreComercialEmisor = _invoice.NombreComercialEmisor, NroDocCliente = _invoice.NroDocCliente, TipoDocumentoIdentidadCliente = _invoice.TipoDocumentoIdentidadCliente, NombreRazonSocialCliente = _invoice.NombreRazonSocialCliente, DocumentoRef = $"{_invoice.SerieDocumento}-{_invoice.CorrelativoDocumento}", TipoDocRef = _invoice.TipoDocumento, Motivo = "MOTIVO DESCONOCIDO", CodigoMoneda = _invoice.CodigoMoneda, Total = _invoice.TotalVenta, TotalTributosAdicionales = _invoice.TotalTributosAdicionales, DireccionEmisor = _invoice.DireccionEmisor, Impuesto = _invoice.Impuesto, DetallesDocumento = _invoice.DetallesDocumento }; return(baseNote); }
/// <summary> /// Devuelve una seccion de xml si la entidad de venta contiene un nro de documento de referencia. /// </summary> /// <param name="noteHeaderEntity"></param> /// <returns></returns> public static DocumentReferenceType[] DevuelveDocumentosReferenciaNote(NotasBase <InvoiceDetail> noteHeaderEntity) { if (noteHeaderEntity.DocumentoReferenciaNumero != null) { var res = new[] { new DocumentReferenceType { ID = noteHeaderEntity.DocumentoReferenciaNumero, DocumentTypeCode = ((int)noteHeaderEntity.DocumentoReferenciaTipoDocumento).ToString("00") } }; return(res); } return(null); }
/// <summary> /// Crea una Instancia a partir de una Nota Electronica Base. /// </summary> /// <param name="nota">Nota Base que inicializara la nueva instancia</param> public CreditNoteHeader(NotasBase <InvoiceDetail> nota) { var properties = nota.GetType().GetProperties(); foreach (var prop in properties) { var v = prop.GetValue(nota, null); if (v != null) { prop.SetValue(this, v, null); } } var fields = nota.GetType().GetFields(); foreach (var field in fields) { var v = field.GetValue(nota); if (v != null) { field.SetValue(this, v); } } }
private NotasBase <InvoiceDetail> GetBaseNota(ventaDto pobjVenta, clienteDto pobjCliente, decimal igv) { var baseNote = new NotasBase <InvoiceDetail> { SerieDocumento = pobjVenta.v_SerieDocumento, CorrelativoDocumento = pobjVenta.v_CorrelativoDocumento, DocumentoRef = (pobjVenta.v_SerieDocumentoRef + "-" + pobjVenta.v_CorrelativoDocumentoRef).Trim(), TipoDocRef = (TipoDocumentoElectronico)Enum.ToObject(typeof(TipoDocumentoElectronico), pobjVenta.i_IdTipoDocumentoRef ?? 1), FechaEmision = pobjVenta.t_FechaRegistro ?? DateTime.Now, NombreRazonSocialCliente = System.Text.RegularExpressions.Regex.Replace(string.Join(" ", pobjCliente.v_ApePaterno, pobjCliente.v_ApeMaterno, pobjCliente.v_PrimerNombre, pobjCliente.v_SegundoNombre, pobjCliente.v_RazonSocial), @"[^\w\.-]", " ").Trim(), TipoDocumentoIdentidadCliente = (TipoDocumentoIdentidad)Enum.ToObject(typeof(TipoDocumentoIdentidad), pobjCliente.i_IdTipoIdentificacion ?? 6), NroDocCliente = pobjCliente.v_NroDocIdentificacion, RucEmisor = _config.v_Ruc, NombreComercialEmisor = _config.v_NombreComercial, NombreRazonSocialEmisor = _config.v_RazonSocial, TipoDocumentoIdentidadEmisor = TipoDocumentoIdentidad.RegistroUnicoContribuyentes, CodigoMoneda = pobjVenta.i_IdMoneda == 1 ? "PEN" : "USD", Motivo = pobjVenta.v_Concepto, Total = pobjVenta.d_ValorVenta ?? 0M, TotalCargos = 0, DireccionEmisor = new DireccionType { CodigoPais = "PE", CodigoUbigueo = _config.v_Ubigueo, Departamento = _config.v_Departamento, Provincia = _config.v_Provincia, Distrito = _config.v_Distrito, Zona = _config.v_Urbanizacion, Direccion = _config.v_Domicilio }, Impuesto = GetImpuestosGlobal(pobjVenta), DetallesDocumento = new List <InvoiceDetail>() }; //if (!string.IsNullOrWhiteSpace(pobjVenta.v_SerieDocumentoRef)) //{ // baseNote.DocumentoReferenciaNumero = pobjVenta.v_SerieDocumentoRef + "-" + pobjVenta.v_CorrelativoDocumentoRef; // baseNote.DocumentoReferenciaTipoDocumento = (TipoDocumentoElectronico)Enum.ToObject(typeof(TipoDocumentoElectronico), pobjVenta.i_IdTipoDocumentoRef); //} if (!string.IsNullOrWhiteSpace(pobjVenta.v_NroGuiaRemisionSerie)) { baseNote.GuiaRemisionReferencia = new List <GuiaRemisionType> { new GuiaRemisionType { IdTipoGuiaRemision = "09", // Tipo Guia Remision NumeroGuiaRemision = pobjVenta.v_NroGuiaRemisionSerie + "-" + pobjVenta.v_NroGuiaRemisionCorrelativo } }; } //Descuento Global var factDesc = 1M; //if (IsValueNotNullorZero(pobjVenta.d_PorcDescuento)) //{ // factDesc = 1 - (pobjVenta.d_PorcDescuento ?? 0) / 100; // var valTotal = pobjVenta.d_Total / factDesc; // baseNote.DescuentoGlobal = valTotal - pobjVenta.d_Total ?? 0; //} var sumTotals = LoadDetail(baseNote.DetallesDocumento, pobjVenta, igv); baseNote.TotalTributosAdicionales = GetTributosAddicionales(sumTotals, factDesc); if (IsValueNotNullorZero(pobjVenta.d_Descuento)) //Si Tiene Descuentos { baseNote.TotalTributosAdicionales.Add(new TotalTributosType { Id = OtrosConceptosTributarios.TotalDescuentos, MontoPagable = pobjVenta.d_Descuento ?? 0m }); } return(baseNote); }