private void ManagementAutomaticRates(ArticulosModel model, TipoFlujo flujo) { var tarifas = _db.Tarifas.Where(f => f.empresa == model.Empresa && f.tipoflujo == (int)flujo && f.tipotarifa == (int)TipoTarifa.Especifica && f.asignartarifaalcreararticulos == true).ToList(); var vector = flujo == TipoFlujo.Venta ? model.TarifasEspecificasVentas.Lineas : model.TarifasEspecificasCompras.Lineas; foreach (var item in tarifas) { var tarifa = _db.TarifasLin.SingleOrDefault( f => f.empresa == model.Empresa && f.fktarifas == item.id && f.fkarticulos == model.Id); if (tarifa == null) { tarifa = _db.TarifasLin.Create(); } if (vector.All(f => f.Id != tarifa.fktarifas)) { tarifa.empresa = model.Empresa; tarifa.fktarifas = item.id; tarifa.Unidades = model.Fkunidades; tarifa.fkarticulos = model.Id; tarifa.descuento = 0; tarifa.precio = model.Articulocomentariovista ? 0 : CalcularPrecio(item, model); _db.TarifasLin.AddOrUpdate(tarifa); } } _db.SaveChanges(); }
private void ManagementSpecificRates(ArticulosModel model, TipoFlujo flujo) { var vector = flujo == TipoFlujo.Venta ? model.TarifasEspecificasVentas.Lineas : model.TarifasEspecificasCompras.Lineas; foreach (var item in vector) { var tarifa = _db.TarifasLin.SingleOrDefault( f => f.empresa == model.Empresa && f.fktarifas == item.Id && f.fkarticulos == model.Id); if (tarifa == null) { tarifa = _db.TarifasLin.Create(); tarifa.empresa = model.Empresa; tarifa.Unidades = model.Fkunidades; tarifa.fktarifas = item.Id; tarifa.fkarticulos = model.Id; tarifa.descuento = item.Descuento; tarifa.precio = model.Articulocomentariovista ? 0 : item.Precio; _db.TarifasLin.Add(tarifa); } else { tarifa.Unidades = model.Fkunidades; tarifa.descuento = item.Descuento; tarifa.precio = model.Articulocomentariovista ? 0 : item.Precio; } } _db.SaveChanges(); }
public IActionResult Upsert(TipoFlujo tipoFlujo) { if (ModelState.IsValid) { if (tipoFlujo.Id == 0) { _unitOfWork.TipoFlujo.Add(tipoFlujo); } else { _unitOfWork.TipoFlujo.Update(tipoFlujo); } _unitOfWork.Save(); return(RedirectToAction(nameof(Index))); } return(View(tipoFlujo)); }
public IActionResult Upsert(int?id) { TipoFlujo tipoFlujo = new TipoFlujo(); if (id == null) { //this is for create return(View(tipoFlujo)); } //this is for edit tipoFlujo = _unitOfWork.TipoFlujo.Get(id.GetValueOrDefault()); if (tipoFlujo == null) { return(NotFound()); } return(View(tipoFlujo)); }
private double GetPrecio(string fkarticulo, TipoFlujo tipoflujo, IProspectoCliente fkcuenta, string fkmonedas = "", string fkregimeniva = "") { double result = 0; var codTarifa = fkcuenta.Fktarifas; var tarifa = _db.Tarifas.Include("TarifasLin").SingleOrDefault(f => f.empresa == Empresa && f.id == codTarifa && f.tipoflujo == (int)tipoflujo); if (tarifa != null) { if (string.IsNullOrEmpty(fkmonedas) || (!string.IsNullOrEmpty(fkmonedas) && tarifa.fkmonedas == Funciones.Qint(fkmonedas))) { result = tarifa.TarifasLin.SingleOrDefault(f => f.empresa == Empresa && f.fktarifas == codTarifa && f.fkarticulos == fkarticulo)?.precio ?? 0.0; } } return(result); }
private List <TarifasSistemaArticulosViewModel> GetTarifas(TipoFlujo tipo, string id) { var list = _appService.GetTarifasSistema(tipo, true, Empresa); var existing = _db.TarifasLin.Where(f => f.empresa == Empresa && f.fkarticulos == id && f.Tarifas.tipotarifa == (int)TipoTarifa.Sistema && f.Tarifas.tipoflujo == (int)tipo).ToList(); return (list.Select( f => new TarifasSistemaArticulosViewModel() { Id = f.Id, Descripcion = f.Descripcion, Obligatorio = f.Obligatorio, Precio = existing.SingleOrDefault( j => j.Tarifas.id == f.Id && j.fkarticulos == id)?.precio ?? 0 }).ToList()); }
private string GetCadenaSelectArticulo(string id, string fkcuenta, string fkmonedas, string fkregimeniva, TipoFlujo flujo) { var sb = new StringBuilder(); if (flujo == TipoFlujo.Venta) { sb.Append("select a.categoria as Categoria, case when u.tipototal=1 then convert(bit,1) else convert(bit,0) end as Permitemodificarmetros,a.Piezascaja as Piezascaja, " + " u.id as Fkunidades,u.decimalestotales as [Decimalestotales],u.formula as [Formulas] ,a.id as [Id], a.descripcion as [Descripcion],a.descripcion2 as [Descripcion2],isnull(a.largo,0) as [Largo],isnull(a.ancho,0) as [Ancho],isnull(a.grueso,0) as [Grueso],isnull(a.editarlargo,0) as [Permitemodificarlargo],isnull(a.editarancho,0) as [Permitemodificarancho], " + " isnull(a.editargrueso,0) as [Permitemodificargrueso],mo.id as Fkmonedas,fp.tipofamilia as [Tipofamilia],a.tipogestionlotes as [Tipogestionlotes],isnull(a.lotefraccionable,0) as [Lotefraccionable],a.tipoivavariable as [Tipoivavariable], "); sb.Append(" mo.decimales as Decimalesmonedas, mo.cambiomonedabase as Cambiomonedabase,mo.cambiomonedaadicional as Cambiomonedaadicional,"); sb.Append(" ti.id as Fktiposiva, ti.nombre as Descripcioniva, ti.Porcentajeiva as Porcentajeiva,ti.porcentajerecargoequivalente as PorcentajeRecargoEquivalencia,"); sb.Append(" isnull(tl.precio, 0.0) as Precio, isnull(a.articulocomentario,0) as Articulocomentario,fp.fkcontador as Fkcontador "); sb.Append(" from articulos as a"); sb.Append(" inner join Familiasproductos as fp on fp.empresa = a.empresa and fp.id = substring(a.id, 0, 3)"); sb.Append(" left join unidades as u on u.id = fp.fkunidadesmedida"); sb.AppendFormat(" left join clientes as cli on cli.empresa = a.empresa and cli.fkcuentas = '{0}'", fkcuenta); sb.AppendFormat(" left join prospectos as pro on pro.empresa = a.empresa and pro.fkcuentas = '{0}'", fkcuenta); sb.Append(" left join monedas as mo on mo.id = isnull(cli.fkmonedas, pro.fkmonedas)"); sb.AppendFormat(" left join RegimenIva as ri on ri.empresa = a.empresa and ri.id = isnull({0}, isnull(cli.fkregimeniva, pro.fkregimeniva))", string.IsNullOrEmpty(fkregimeniva) ? "NULL" : "'" + fkregimeniva + "'"); sb.Append(" left join TarifasLin as tl on tl.empresa = a.empresa and tl.fktarifas = isnull(cli.fktarifas, pro.fktarifas) and tl.fkarticulos = a.id"); sb.Append(" left join TiposIva as ti on ti.empresa = a.empresa and"); sb.Append(" ti.id = (select top 1 case concat(isnull(ri.normal, 0), isnull(ri.recargo, 0), isnull(ri.exentotasa, 0))"); sb.Append(" when '100' then gi.fktiposivasinrecargo"); sb.Append(" when '010' then gi.fktiposivaconrecargo"); sb.Append(" when '001' then gi.fktiposivaexentoiva"); sb.Append(" end"); sb.Append(" from GruposIvaLin as gi where gi.empresa = a.empresa and gi.fkgruposiva = a.fkgruposiva and gi.desde <= getdate() order by gi.desde desc)"); sb.AppendFormat(" where a.empresa = '{0}' and a.id='{1}' and (a.categoria=0 or a.categoria=1)", Empresa, id); } else { sb.Append("select a.categoria as Categoria,case when u.tipototal=1 then convert(bit,1) else convert(bit,0) end as Permitemodificarmetros,a.Piezascaja as Piezascaja, " + " u.id as Fkunidades,u.decimalestotales as [Decimalestotales],u.formula as [Formulas] ,a.id as [Id], a.descripcion as [Descripcion],a.descripcion2 as [Descripcion2],isnull(a.largo,0) as [Largo],isnull(a.ancho,0) as [Ancho],isnull(a.grueso,0) as [Grueso],isnull(a.editarlargo,0) as [Permitemodificarlargo],isnull(a.editarancho,0) as [Permitemodificarancho], " + " isnull(a.editargrueso,0) as [Permitemodificargrueso],mo.id as Fkmonedas, fp.tipofamilia as [Tipofamilia],a.tipogestionlotes as [Tipogestionlotes],isnull(a.lotefraccionable,0) as [Lotefraccionable],a.tipoivavariable as [Tipoivavariable], "); sb.Append(" mo.decimales as Decimalesmonedas, mo.cambiomonedabase as Cambiomonedabase,mo.cambiomonedaadicional as Cambiomonedaadicional,"); sb.Append(" ti.id as Fktiposiva, ti.nombre as Descripcioniva, ti.Porcentajeiva as Porcentajeiva,ti.porcentajerecargoequivalente as PorcentajeRecargoEquivalencia,"); sb.Append(" isnull(tl.precio, 0.0) as Precio, isnull(a.articulocomentario,0) as Articulocomentario,fp.fkcontador as Fkcontador "); sb.Append(" from articulos as a"); sb.Append(" inner join Familiasproductos as fp on fp.empresa = a.empresa and fp.id = substring(a.id, 0, 3)"); sb.Append(" left join unidades as u on u.id = fp.fkunidadesmedida"); sb.AppendFormat(" left join proveedores as cli on cli.empresa = a.empresa and cli.fkcuentas = '{0}'", fkcuenta); sb.Append(" left join monedas as mo on mo.id = cli.fkmonedas "); sb.AppendFormat(" left join RegimenIva as ri on ri.empresa = a.empresa and ri.id = isnull({0}, cli.fkregimeniva)", string.IsNullOrEmpty(fkregimeniva) ? "NULL" : "'" + fkregimeniva + "'"); sb.Append(" left join TarifasLin as tl on tl.empresa = a.empresa and tl.fktarifas = cli.tarifa and tl.fkarticulos = a.id"); sb.Append(" left join TiposIva as ti on ti.empresa = a.empresa and"); sb.Append(" ti.id = (select top 1 case concat(isnull(ri.normal, 0), isnull(ri.recargo, 0), isnull(ri.exentotasa, 0))"); sb.Append(" when '100' then gi.fktiposivasinrecargo"); sb.Append(" when '010' then gi.fktiposivaconrecargo"); sb.Append(" when '001' then gi.fktiposivaexentoiva"); sb.Append(" end"); sb.Append(" from GruposIvaLin as gi where gi.empresa = a.empresa and gi.fkgruposiva = a.fkgruposiva and gi.desde <= getdate() order by gi.desde desc)"); sb.AppendFormat(" where a.empresa = '{0}' and a.id='{1}' and (a.categoria=0 or a.categoria=2)", Empresa, id); } return(sb.ToString()); }
public ArticulosDocumentosModel GetArticulo(string id, string fkcuenta, string fkmonedas, string fkregimeniva, TipoFlujo flujo = TipoFlujo.Venta) { return(_db.Database.SqlQuery <ArticulosDocumentosModel>(GetCadenaSelectArticulo(id, fkcuenta, fkmonedas, fkregimeniva, flujo)).SingleOrDefault()); }
public List <TarifasEspecificasArticulosViewModel> GetTarifas(TipoFlujo flujo, string articulo) { var serviceTarifas = FService.Instance.GetService(typeof(TarifasModel), _context, _db) as TarifasService; return(serviceTarifas.GetTarifasEspecificas(flujo, articulo, Empresa).ToList()); }
public static TipoFlujo TipoFlujoTraer(int Flujo) { TipoFlujo objRespuesta = new TipoFlujo(); SqlConnection sqlConexion = new SqlConnection(CotizacionICRL.strCadenaConexion); string strComando = "SELECT [idFlujo],[flujoOnBase],[estado],[numeroReclamo],[numeroPoliza],[marcaVehiculo],[modeloVehiculo],[anioVehiculo],[colorVehiculo],[placaVehiculo],[chasisVehiculo],[valorAsegurado],[importacionDirecta],[nombreAsegurado],[docIdAsegurado],[telefonocelAsegurado],[causaSiniestro],[contador],[descripcionSiniestro],[direccionInspeccion],[agenciaAtencion],[fechaSiniestro] FROM [LBCDesa].[dbo].[Flujo] WHERE idFlujo=@idFlujo"; SqlCommand sqlComando = new SqlCommand(strComando, sqlConexion); SqlDataReader sqlDatos; try { sqlComando.Parameters.Add("@idFlujo", System.Data.SqlDbType.Int).Value = Flujo; sqlConexion.Open(); sqlDatos = sqlComando.ExecuteReader(); while (sqlDatos.Read()) { objRespuesta.idFlujo = Flujo; if (sqlDatos["flujoOnBase"] != DBNull.Value) { objRespuesta.flujoOnBase = Convert.ToString(sqlDatos["flujoOnBase"]); } if (sqlDatos["estado"] != DBNull.Value) { objRespuesta.estado = Convert.ToString(sqlDatos["estado"]); } if (sqlDatos["numeroReclamo"] != DBNull.Value) { objRespuesta.numeroReclamo = Convert.ToString(sqlDatos["numeroReclamo"]); } if (sqlDatos["numeroPoliza"] != DBNull.Value) { objRespuesta.numeroPoliza = Convert.ToString(sqlDatos["numeroPoliza"]); } if (sqlDatos["marcaVehiculo"] != DBNull.Value) { objRespuesta.marcaVehiculo = Convert.ToString(sqlDatos["marcaVehiculo"]); } if (sqlDatos["modeloVehiculo"] != DBNull.Value) { objRespuesta.modeloVehiculo = Convert.ToString(sqlDatos["modeloVehiculo"]); } if (sqlDatos["anioVehiculo"] != DBNull.Value) { objRespuesta.anioVehiculo = Convert.ToString(sqlDatos["anioVehiculo"]); } if (sqlDatos["colorVehiculo"] != DBNull.Value) { objRespuesta.colorVehiculo = Convert.ToString(sqlDatos["colorVehiculo"]); } if (sqlDatos["placaVehiculo"] != DBNull.Value) { objRespuesta.placaVehiculo = Convert.ToString(sqlDatos["placaVehiculo"]); } if (sqlDatos["chasisVehiculo"] != DBNull.Value) { objRespuesta.chasisVehiculo = Convert.ToString(sqlDatos["chasisVehiculo"]); } if (sqlDatos["valorAsegurado"] != DBNull.Value) { objRespuesta.valorAsegurado = Convert.ToString(sqlDatos["valorAsegurado"]); } if (sqlDatos["importacionDirecta"] != DBNull.Value) { objRespuesta.importacionDirecta = Convert.ToString(sqlDatos["importacionDirecta"]); } if (sqlDatos["nombreAsegurado"] != DBNull.Value) { objRespuesta.nombreAsegurado = Convert.ToString(sqlDatos["nombreAsegurado"]); } if (sqlDatos["docIdAsegurado"] != DBNull.Value) { objRespuesta.docIdAsegurado = Convert.ToString(sqlDatos["docIdAsegurado"]); } if (sqlDatos["telefonocelAsegurado"] != DBNull.Value) { objRespuesta.telefonocelAsegurado = Convert.ToString(sqlDatos["telefonocelAsegurado"]); } if (sqlDatos["causaSiniestro"] != DBNull.Value) { objRespuesta.causaSiniestro = Convert.ToString(sqlDatos["causaSiniestro"]); } if (sqlDatos["contador"] != DBNull.Value) { objRespuesta.contador = Convert.ToString(sqlDatos["contador"]); } if (sqlDatos["descripcionSiniestro"] != DBNull.Value) { objRespuesta.descripcionSiniestro = Convert.ToString(sqlDatos["descripcionSiniestro"]); } if (sqlDatos["direccionInspeccion"] != DBNull.Value) { objRespuesta.direccionInspeccion = Convert.ToString(sqlDatos["direccionInspeccion"]); } if (sqlDatos["agenciaAtencion"] != DBNull.Value) { objRespuesta.agenciaAtencion = Convert.ToString(sqlDatos["agenciaAtencion"]); } if (sqlDatos["fechaSiniestro"] != DBNull.Value) { objRespuesta.fechaSiniestro = Convert.ToString(sqlDatos["fechaSiniestro"]); } } sqlDatos.Close(); } catch (Exception) { objRespuesta = new TipoFlujo(); } finally { sqlConexion.Close(); sqlConexion.Dispose(); } return(objRespuesta); }
public IEnumerable <UltimopreciosistemaModel> GetPreciosSistema(string articulo, TipoFlujo tipo) { // var list = _appService.GetTarifasSistema(tipo, true, Empresa); var existing = _db.TarifasLin.Include("Tarifas").Where(f => f.empresa == Empresa && f.fkarticulos == articulo && f.Tarifas.tipotarifa == (int)TipoTarifa.Sistema && f.Tarifas.tipoflujo == (int)tipo).ToList(); return (existing.Select( f => new UltimopreciosistemaModel() { Tarifa = f.Tarifas.descripcion, Precio = f.precio ?? 0 }).ToList()); }
public IEnumerable <TarifasEspecificasArticulosViewModel> GetTarifasEspecificas(TipoFlujo tipoflujo, string articulo, string empresa) { return(_db.Tarifas.SqlQuery( "select t.* from tarifas as t inner join tarifaslin as tl on tl.empresa=t.empresa and tl.fktarifas=t.id and tl.fkarticulos=@articulo where t.empresa=@empresa and t.tipoflujo=@tipoflujo and t.tipotarifa=@tipotarifa " + " and (t.validodesde is null or t.validodesde<=@fechaactual) and (t.validohasta is null or t.validohasta>=@fechaactual)", new object[] { new SqlParameter("@empresa", empresa), new SqlParameter("@articulo", articulo), new SqlParameter("@tipoflujo", (int)tipoflujo), new SqlParameter("@tipotarifa", (int)TipoTarifa.Especifica), new SqlParameter("@fechaactual", DateTime.Now) }).Select(f => new TarifasEspecificasArticulosViewModel() { Descripcion = f.descripcion, Id = f.id, Fkcuenta = f.fkcuentas, Precio = f.TarifasLin.ToList().FirstOrDefault(j => j.fkarticulos == articulo)?.precio ?? 0, Obligatorio = f.precioobligatorio ?? false, Descuento = f.TarifasLin.ToList().FirstOrDefault(j => j.fkarticulos == articulo)?.descuento ?? 0, }).ToList()); }