public async Task <ServiceResponse <GetBoletaDTO> > CrearBoleta(AddBoletaDto nuevaBoleta) { ServiceResponse <GetBoletaDTO> serviceResponse = new ServiceResponse <GetBoletaDTO>(); /*crearemos una boleta para luego guardarla en bd, luego de eso, podriamos crear los otros metodos de calculo? y finalmente ir por el xml*/ Boleta boleta = new Boleta(); /*podria obtener rut el emisor desde la bd y ponerlo en la boleta*/ try { int linea = 1; foreach (var item in nuevaBoleta.Detalle) { item.MontoItem = CalcularMontoDetalle(item.PrcItem, item.QtyItem);/*(Precio unitario * cantidad) - monto desc + monto recarg */ nuevaBoleta.Encabezado.Totales.MntTotal += item.MontoItem; item.NroLinDet = linea; linea++; } nuevaBoleta.Encabezado.Totales.MntNeto = CalcularNetoBoleta(nuevaBoleta.Encabezado.Totales.MntTotal); nuevaBoleta.Encabezado.Totales.IVA = CalcularIvaBoleta(nuevaBoleta.Encabezado.Totales.MntTotal); boleta = _mapper.Map <Boleta>(nuevaBoleta); await _context.Boletas.AddAsync(boleta); // await _context.SaveChangesAsync(); var docDto = _mapper.Map <Documento>(boleta); GenerarXmlBoleta(docDto); serviceResponse.Message = string.Format("Boleta eletrónica tipo {0} con folio {1} creada.", boleta.Encabezado.IdDoc.TipoDTE, boleta.Encabezado.IdDoc.Folio); serviceResponse.Data = _mapper.Map <GetBoletaDTO>(boleta); } catch (Exception ex) { serviceResponse.Message = ex.Message; serviceResponse.Success = false; } return(serviceResponse); }
public async Task <IActionResult> CrearBoleta(AddBoletaDto nuevaBoleta) { return(Ok(await _boletaService.CrearBoleta(nuevaBoleta))); }