private static Punto Sumador(Punto response, dynamic SumaPuntos, dynamic CanjePuntos) { var puntosSume = SumaPuntos[0].Puntos == null ? 0 : SumaPuntos[0].Puntos; var puntosCanje = CanjePuntos[0].Puntos == null ? 0 : CanjePuntos[0].Puntos; var montoSuma = SumaPuntos[0].Monto == null ? 0 : SumaPuntos[0].Monto; var montoCanje = CanjePuntos[0].Monto == null ? 0 : CanjePuntos[0].Monto; response.Puntos = puntosSume - puntosCanje; response.MontoCompra = montoSuma - montoCanje; return response; }
private void PuntosParticulares(Punto response,int anio) { var doc = GetCorporativo(response.Cuenta, response.CodEmpresa); dynamic sumaPuntos, canjePuntos; if (anio == 0) { sumaPuntos = DB.Cuentas_Corrientes.FindAllByCuentaAndCodEmpresa(response.Cuenta, response.CodEmpresa) .Select(DB.Cuentas_Corrientes.MontoCompra.Sum().As("Monto"), DB.Cuentas_Corrientes.CantidadPuntos.Sum().As("Puntos")) .Where(DB.Cuentas_Corrientes.Movimiento == 0 || DB.Cuentas_Corrientes.Movimiento == 2) .Where(DB.Cuentas_Corrientes.NroDoc != doc).ToList(); canjePuntos = DB.Cuentas_Corrientes.FindAllByCuentaAndCodEmpresa(response.Cuenta, response.CodEmpresa) .Select(DB.Cuentas_Corrientes.MontoCompra.Sum().As("Monto"), DB.Cuentas_Corrientes.CantidadPuntos.Sum().As("Puntos")) .Where(DB.Cuentas_Corrientes.Movimiento == 1 || DB.Cuentas_Corrientes.Movimiento == 4) .Where(DB.Cuentas_Corrientes.NroDoc != doc).ToList(); } else { sumaPuntos = DB.Cuentas_Corrientes.FindAllByCuentaAndCodEmpresa(response.Cuenta, response.CodEmpresa) .Select(DB.Cuentas_Corrientes.MontoCompra.Sum().As("Monto"), DB.Cuentas_Corrientes.CantidadPuntos.Sum().As("Puntos")) .Where(DB.Cuentas_Corrientes.Movimiento == 0 || DB.Cuentas_Corrientes.Movimiento == 2) .Where(DB.Cuentas_Corrientes.fecha_Compra >= @"01/12/" + (anio-1) && DB.Cuentas_Corrientes.fecha_Compra <= @"30/11/" + anio) .Where(DB.Cuentas_Corrientes.NroDoc != doc).ToList(); canjePuntos = DB.Cuentas_Corrientes.FindAllByCuentaAndCodEmpresa(response.Cuenta, response.CodEmpresa) .Select(DB.Cuentas_Corrientes.MontoCompra.Sum().As("Monto"), DB.Cuentas_Corrientes.CantidadPuntos.Sum().As("Puntos")) .Where(DB.Cuentas_Corrientes.fecha_Compra >= @"01/12/" + (anio-2) && DB.Cuentas_Corrientes.fecha_Compra <= @"30/11/" + anio) .Where(DB.Cuentas_Corrientes.Movimiento == 1 || DB.Cuentas_Corrientes.Movimiento == 4) .Where(DB.Cuentas_Corrientes.NroDoc != doc).ToList(); } Sumador(response, sumaPuntos, canjePuntos); }
private Response GetPuntosForCustomer(dynamic x, Punto response,int anio=0) { if (((string)x.origen).ToLowerInvariant() == "corporativo") PuntosCorporativos(response,anio); else PuntosParticulares(response,anio); if (x.extension == "json") return Response.AsJson(response); else return Response.AsXml(response); }