Exemplo n.º 1
0
        public IActionResult CrearEditarFactura(FacturaViewModel viewModel, IList <FacturaDetalleViewModel> detalle, IList <long> eliminadas, IList <CajaMovimientoViewModel> formaPago)
        {
            try
            {
                var factura = new TbFdFactura();
                if (viewModel.Id != 0)
                {
                    factura = map.Update(viewModel);
                    viewModel.FacturaDetalle = detalle;
                    if (detalle.Count() > 0)
                    {
                        var fd = map.CreateOrUpdateFD(viewModel);
                    }

                    var deleted = service.DeleteFacturaDetalle(eliminadas);
                }
                else
                {
                    viewModel.FacturaDetalle = detalle;

                    viewModel.IdUsuarioCreador = int.Parse(User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value);
                    viewModel.FechaCreacion    = DateTime.Now;
                    factura = map.Create(viewModel);
                }


                //valida factura tipo contado
                if (factura.Tipo == 1)
                {
                    cajaMovMap.CreateCajaMovimiento(formaPago, movService.GetUltimoMovimientoPagoId(factura.Id));
                }

                return(Json(new { success = true, idDoc = factura.Id }));
            }
            catch (Exception ex)
            {
                AltivaLog.Log.Insertar(ex.ToString(), "Error");
                throw;
            }
        }