Example #1
0
        public bool ValidacionUnique(FacturaDetalleViewModel model)
        {
            var query = getQueriableBaseActive().Where(w => w.FacturaId == model.FacturaId && w.InventarioId == model.InventarioId && w.Estregistro == 1);

            if (model.Id != null)
            {
                query = query.Where(w => w.Id != model.Id);
            }
            var data = query.FirstOrDefault();

            if (data != null)
            {
                jresult.Errores.addError("General", "Ya existe un registro con datos similares");
                return(false);
            }
            return(true);
        }
Example #2
0
        public JResult InsFacturaDetalle(FacturaDetalleViewModel model)
        {
            try
            {
                ProductoBL productoBL = new ProductoBL();
                var        producto   = productoBL.GetProducto(model.InventarioId);

                FACT_FACTURA_DETALLE dbItem = new FACT_FACTURA_DETALLE
                {
                    Id           = model.Id,
                    FacturaId    = model.FacturaId,
                    InventarioId = model.InventarioId,
                    Cant         = model.Cant,
                    Subtotal     = producto.Data.Valor * model.Cant,
                    Estregistro  = 1,
                };

                db.FACT_FACTURA_DETALLE.Attach(dbItem);
                db.Entry(dbItem).State = EntityState.Added;
                db.SaveChanges();

                var result = UpdTotalFactura(model.FacturaId);
                if (!result.Success)
                {
                    return(jresult.SetError(null, "Error actualizando total factura", this.GetType().Name));
                }

                model.Id          = dbItem.Id;
                model.Estregistro = 1;
                jresult.Data      = model;

                #region Salida Generica OK
                return(jresult.SetOk("Registro creado correctamente"));

                #endregion
            }
            #region Salida generica para errores
            catch (Exception ex)
            {
                return(jresult.SetError(ex, "Error registrando datos", this.GetType().Name));
            }
            #endregion
        }
Example #3
0
        // POST: api/FacturaDetalle
        public IHttpActionResult Post([FromBody] FacturaDetalleViewModel model)
        {
            // Validation logic errors
            BL.ValidacionUnique(model);
            if (BL.jresult.hasError())
            {
                return(Json(BL.jresult));
            }

            // Normal fluent
            var jresult = BL.InsFacturaDetalle(model);

            if (jresult.Success)
            {
                return(Ok(jresult));
            }
            else
            {
                // Internal errors
                return(Json(jresult));
            }
        }
Example #4
0
        public JResult UpdFacturaDetalle(FacturaDetalleViewModel model)
        {
            try
            {
                ProductoBL productoBL = new ProductoBL();
                var        producto   = productoBL.GetProducto(model.InventarioId);

                var dbItem = db.FACT_FACTURA_DETALLE.Find(model.Id);
                dbItem.Id           = model.Id;
                dbItem.FacturaId    = model.FacturaId;
                dbItem.InventarioId = model.InventarioId;
                dbItem.Cant         = model.Cant;
                dbItem.Subtotal     = producto.Data.Valor * model.Cant;
                dbItem.Estregistro  = model.Estregistro;

                db.FACT_FACTURA_DETALLE.Attach(dbItem);
                db.Entry(dbItem).State = EntityState.Modified;

                db.SaveChanges();

                var result = UpdTotalFactura(model.FacturaId);
                if (!result.Success)
                {
                    return(jresult.SetError(null, "Error actualizando total factura", this.GetType().Name));
                }

                #region Salida Generica OK
                return(jresult.SetOk());

                #endregion
            }
            #region Salida generica para errores
            catch (Exception ex)
            {
                return(jresult.SetError(ex, "Error registrando datos", this.GetType().Name));
            }
            #endregion
        }
Example #5
0
        public TbFdFacturaDetalle ViewModelToDomainSingleFD(FacturaDetalleViewModel viewModel, FacturaViewModel factura)
        {
            var domain = new TbFdFacturaDetalle
            {
                FechaCreacion    = viewModel.FechaCreacion,
                FechaVencimiento = viewModel.FechaVencimiento,
                Id               = viewModel.Id,
                IdFactura        = viewModel.IdFactura,
                IdInventario     = viewModel.IdInventario,
                IdUsuarioCreador = viewModel.IdUsuarioCreador,
                Cantidad         = viewModel.Cantidad,
                PorcDescuento    = viewModel.PorcDescuento,
                PorcIva          = viewModel.PorcIva,
                PorcExoneracion  = viewModel.PorcExoneracion
            };


            float dolar = (float)factura.TipoCambioDolar;
            float euro  = (float)factura.TipoCambioEuro;

            if (viewModel.IdMonedaFD == 1)
            {
                domain.PrecioBase  = viewModel.Precio;
                domain.PrecioDolar = domain.PrecioBase / dolar;
                domain.PrecioEuro  = domain.PrecioBase / euro;

                domain.SubTotalBase  = viewModel.SubTotal;
                domain.SubTotalDolar = domain.SubTotalBase / dolar;
                domain.SubTotalEuro  = domain.SubTotalBase / euro;

                domain.SubTotalExcentoBase  = viewModel.SubTotalExcento;
                domain.SubTotalExcentoDolar = domain.SubTotalExcentoBase / dolar;
                domain.SubTotalExcentoEuro  = domain.SubTotalExcentoBase / euro;

                domain.SubTotalExcentoNetoBase  = viewModel.SubTotalExcentoNeto;
                domain.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoBase / dolar;
                domain.SubTotalExcentoNetoEuro  = domain.SubTotalExcentoNetoBase / euro;

                domain.SubTotalGravadoBase  = viewModel.SubTotalGravado;
                domain.SubTotalGravadoDolar = domain.SubTotalGravadoBase / dolar;
                domain.SubTotalGravadoEuro  = domain.SubTotalGravadoBase / euro;

                domain.SubTotalGravadoNetoBase  = viewModel.SubTotalGravadoNeto;
                domain.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoBase / dolar;
                domain.SubTotalGravadoNetoEuro  = domain.SubTotalGravadoNetoBase / euro;

                domain.MontoIvabase  = viewModel.MontoIva;
                domain.MontoIvadolar = domain.MontoIvabase / dolar;
                domain.MontoIvaeuro  = domain.MontoIvabase / euro;


                domain.TotalBase  = viewModel.Total;
                domain.TotalDolar = domain.TotalBase / dolar;
                domain.TotalEuro  = domain.TotalBase / euro;

                domain.MontoDescuentoBase  = viewModel.MontoDescuento;
                domain.MontoDescuentoDolar = viewModel.MontoDescuento / dolar;
                domain.MontoDescuentoEuro  = viewModel.MontoDescuento / euro;

                domain.MontoExoneracionBase  = viewModel.MontoExoneracion;
                domain.MontoExoneracionDolar = viewModel.MontoExoneracion / dolar;
                domain.MontoExoneracionEuro  = viewModel.MontoExoneracion / euro;
            }
            else if (viewModel.IdMonedaFD == 2)
            {
                domain.PrecioBase  = viewModel.Precio * dolar;
                domain.PrecioDolar = viewModel.Precio;
                domain.PrecioEuro  = domain.PrecioBase / euro;

                domain.SubTotalBase  = viewModel.SubTotal * dolar;
                domain.SubTotalDolar = viewModel.SubTotal;
                domain.SubTotalEuro  = domain.SubTotalBase / euro;

                domain.SubTotalExcentoBase  = viewModel.SubTotalExcento * dolar;
                domain.SubTotalExcentoDolar = viewModel.SubTotalExcento;
                domain.SubTotalExcentoEuro  = domain.SubTotalExcentoBase / euro;

                domain.SubTotalExcentoNetoBase  = viewModel.SubTotalExcentoNeto * dolar;
                domain.SubTotalExcentoNetoDolar = viewModel.SubTotalExcentoNeto;
                domain.SubTotalExcentoNetoEuro  = domain.SubTotalExcentoNetoBase / euro;

                domain.SubTotalGravadoBase  = viewModel.SubTotalGravado * dolar;
                domain.SubTotalGravadoDolar = viewModel.SubTotalGravado;
                domain.SubTotalGravadoEuro  = domain.SubTotalGravadoBase / euro;

                domain.SubTotalGravadoNetoBase  = viewModel.SubTotalGravadoNeto * dolar;
                domain.SubTotalGravadoNetoDolar = viewModel.SubTotalGravadoNeto;
                domain.SubTotalGravadoNetoEuro  = domain.SubTotalGravadoNetoBase / euro;


                domain.MontoIvabase  = viewModel.MontoIva * dolar;
                domain.MontoIvadolar = viewModel.MontoIva;
                domain.MontoIvaeuro  = domain.MontoIvabase / euro;

                domain.TotalBase  = viewModel.Total * dolar;
                domain.TotalDolar = viewModel.Total;
                domain.TotalEuro  = domain.TotalBase / euro;

                domain.MontoDescuentoBase  = viewModel.MontoDescuento * dolar;
                domain.MontoDescuentoDolar = viewModel.MontoDescuento;
                domain.MontoDescuentoEuro  = domain.MontoDescuentoBase / euro;

                domain.MontoExoneracionBase  = viewModel.MontoExoneracion * dolar;
                domain.MontoExoneracionDolar = viewModel.MontoExoneracion;
                domain.MontoExoneracionEuro  = domain.MontoExoneracionBase / euro;
            }
            else if (viewModel.IdMonedaFD == 3)
            {
                domain.PrecioBase  = viewModel.Precio * euro;
                domain.PrecioDolar = domain.PrecioBase / dolar;
                domain.PrecioEuro  = viewModel.Precio;

                domain.SubTotalBase  = viewModel.SubTotal * euro;
                domain.SubTotalDolar = domain.SubTotalBase / dolar;
                domain.SubTotalEuro  = viewModel.SubTotal;

                domain.SubTotalExcentoBase  = viewModel.SubTotalExcento * euro;
                domain.SubTotalExcentoDolar = domain.SubTotalExcentoBase / dolar;
                domain.SubTotalExcentoEuro  = viewModel.SubTotalExcento;

                domain.SubTotalExcentoNetoBase  = viewModel.SubTotalExcentoNeto * euro;
                domain.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoBase / dolar;
                domain.SubTotalExcentoNetoEuro  = viewModel.SubTotalExcentoNeto;

                domain.SubTotalGravadoBase  = viewModel.SubTotalGravado * euro;
                domain.SubTotalGravadoDolar = domain.SubTotalGravadoBase / dolar;
                domain.SubTotalGravadoEuro  = viewModel.SubTotalGravado;

                domain.SubTotalGravadoNetoBase  = viewModel.SubTotalGravadoNeto * euro;
                domain.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoBase / dolar;
                domain.SubTotalGravadoNetoEuro  = viewModel.SubTotalGravadoNeto;


                domain.MontoIvabase  = viewModel.MontoIva * euro;
                domain.MontoIvadolar = domain.MontoIvabase / dolar;
                domain.MontoIvaeuro  = viewModel.MontoIva;


                domain.TotalBase  = viewModel.Total * euro;
                domain.TotalDolar = domain.TotalBase / dolar;
                domain.TotalEuro  = viewModel.Total;

                domain.MontoDescuentoBase  = viewModel.MontoDescuento * euro;
                domain.MontoDescuentoDolar = domain.MontoDescuentoBase / dolar;
                domain.MontoDescuentoEuro  = viewModel.MontoDescuento;

                domain.MontoExoneracionBase  = viewModel.MontoExoneracion * euro;
                domain.MontoExoneracionDolar = domain.MontoExoneracionBase / dolar;
                domain.MontoExoneracionEuro  = viewModel.MontoExoneracion;
            }

            return(domain);
        }