Beispiel #1
0
        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);
        }
Beispiel #2
0
 public async Task <IActionResult> CrearBoleta(AddBoletaDto nuevaBoleta)
 {
     return(Ok(await _boletaService.CrearBoleta(nuevaBoleta)));
 }