public bool obtenerPedidoByPk() { PedidoDetalleModel aux; try { string sql = "SELECT * FROM VPEDIDOS WHERE PK=@PK AND BORRADO=0"; db.PreparedSQL(sql); db.command.Parameters.AddWithValue("@PK", PK); ResultSet res = db.getTable(); if (res.Next()) { PK = res.Get("PK"); PK_CLIENTE = res.Get("PK_CLIENTE"); CLIENTE = res.Get("CLIENTE"); TELEFONO_CLIENTE = res.Get("TELEFONO"); PK_TIENDA = res.Get("PK_TIENDA"); TIENDA = res.Get("TIENDA"); DIRECCION_TIENDA = res.Get("TIENDA_DIRECCION"); LATITUD_TIENDA = res.Get("LATITUD_TIENDA"); LONGITUD_TIENDA = res.Get("LONGITUD_TIENDA"); DIRECCION = res.Get("DIRECCION"); LATITUD = res.Get("LATITUD"); LONGITUD = res.Get("LONGITUD"); PK_REPARTIDOR = res.Get("PK_REPARTIDOR"); REPARTIDOR = res.Get("REPARTIDOR"); PK_ESTATUS = res.Get("PK_ESTATUS"); ESTATUS = res.Get("ESTATUS"); SUBTOTAL = res.GetDouble("SUBTOTAL"); ENVIO = res.GetDouble("ENVIO"); COMISION_TARJETA = res.GetDouble("COMISION_TARJETA"); TOTAL = res.GetDouble("TOTAL"); METODO_PAGO = res.Get("METODO_PAGO"); PAGO_EFECTIVO = res.Get("PAGO_EFECTIVO"); FECHA_PAGO_EFECTIVO = res.Get("FECHA_PAGO_EFECTIVO"); IMAGEN_TIENDA = res.Get("IMAGEN_TIENDA"); BORRADO = res.Get("BORRADO"); FECHA_C = res.Get("FECHA_C"); FECHA_M = res.Get("FECHA_M"); FECHA_D = res.Get("FECHA_D"); USUARIO_C = res.Get("USUARIO_C"); USUARIO_M = res.Get("USUARIO_M"); USUARIO_D = res.Get("USUARIO_D"); aux = new PedidoDetalleModel(); aux.PK_PEDIDO = PK; LISTA = aux.getByPkPedido(); if (METODO_PAGO.Equals("T")) { cargo = new CargosModel(); cargo.PK_PEDIDO = PK; cargo.obtenerCargoByPK(); } return(true); } } catch { } return(false); }
public List <PedidosModel> obtenerPedidosByPkClienteAntesDeHoy() { List <PedidosModel> lista = new List <PedidosModel>(); PedidosModel pedido; PedidoDetalleModel aux; try { string sql = "SELECT * FROM VPEDIDOS WHERE PK_CLIENTE=@PK_CLIENTE AND BORRADO=0 and convert(varchar(10),FECHA_C,120)<convert(varchar(10),getdate(),120) order by FECHA_C desc"; db.PreparedSQL(sql); db.command.Parameters.AddWithValue("@PK_CLIENTE", PK_CLIENTE); ResultSet res = db.getTable(); while (res.Next()) { pedido = new PedidosModel(); pedido.PK = res.Get("PK"); pedido.PK_CLIENTE = res.Get("PK_CLIENTE"); pedido.CLIENTE = res.Get("CLIENTE"); pedido.PK_TIENDA = res.Get("PK_TIENDA"); pedido.TIENDA = res.Get("TIENDA"); pedido.DIRECCION = res.Get("DIRECCION"); pedido.LATITUD = res.Get("LATITUD"); pedido.LONGITUD = res.Get("LONGITUD"); pedido.PK_REPARTIDOR = res.Get("PK_REPARTIDOR"); pedido.REPARTIDOR = res.Get("REPARTIDOR"); pedido.PK_ESTATUS = res.Get("PK_ESTATUS"); pedido.ESTATUS = res.Get("ESTATUS"); pedido.SUBTOTAL = res.GetDouble("SUBTOTAL"); pedido.ENVIO = res.GetDouble("ENVIO"); pedido.COMISION_TARJETA = res.GetDouble("COMISION_TARJETA"); pedido.TOTAL = res.GetDouble("TOTAL"); pedido.METODO_PAGO = res.Get("METODO_PAGO"); pedido.PAGO_EFECTIVO = res.Get("PAGO_EFECTIVO"); pedido.FECHA_PAGO_EFECTIVO = res.Get("FECHA_PAGO_EFECTIVO"); pedido.IMAGEN_TIENDA = res.Get("IMAGEN_TIENDA"); pedido.BORRADO = res.Get("BORRADO"); pedido.FECHA_C = res.Get("FECHA_C"); pedido.FECHA_M = res.Get("FECHA_M"); pedido.FECHA_D = res.Get("FECHA_D"); pedido.USUARIO_C = res.Get("USUARIO_C"); pedido.USUARIO_M = res.Get("USUARIO_M"); pedido.USUARIO_D = res.Get("USUARIO_D"); try { pedido.FECHA_ENTREGA = res.GetDateTime("FECHA_ENTREGA").ToString("dddd dd ", CultureInfo.CreateSpecificCulture("es-MX")) + "de" + res.GetDateTime("FECHA_ENTREGA").ToString(" MMMM yyyy", CultureInfo.CreateSpecificCulture("es-MX")); //pedido.FECHA_ENTREGA = res.GetDateTime("FECHA_ENTREGA").ToString("yyyy-MM-dd"); } catch (Exception e) { } aux = new PedidoDetalleModel(); aux.PK_PEDIDO = pedido.PK; pedido.LISTA = aux.getByPkPedido(); lista.Add(pedido); } } catch { } return(lista); }
public List <PedidosModel> obtenerPedidosPasadosByPkTienda() { List <PedidosModel> lista = new List <PedidosModel>(); PedidosModel pedido; PedidoDetalleModel aux; try { string sql = "SELECT * FROM VPEDIDOS WHERE PK_TIENDA=@PK_TIENDA AND PK_ESTATUS=5 AND BORRADO=0 AND FECHA_ENTREGA=@FECHA_ENTREGA ORDER BY FECHA_C DESC"; db.PreparedSQL(sql); db.command.Parameters.AddWithValue("@PK_TIENDA", PK_TIENDA); db.command.Parameters.AddWithValue("@FECHA_ENTREGA", FECHA_ENTREGA); ResultSet res = db.getTable(); while (res.Next()) { pedido = new PedidosModel(); pedido.PK = res.Get("PK"); pedido.PK_CLIENTE = res.Get("PK_CLIENTE"); pedido.CLIENTE = res.Get("CLIENTE"); pedido.PK_TIENDA = res.Get("PK_TIENDA"); pedido.DIRECCION = res.Get("DIRECCION"); pedido.LATITUD = res.Get("LATITUD"); pedido.LONGITUD = res.Get("LONGITUD"); pedido.PK_REPARTIDOR = res.Get("PK_REPARTIDOR"); pedido.REPARTIDOR = res.Get("REPARTIDOR"); pedido.PK_ESTATUS = res.Get("PK_ESTATUS"); pedido.ESTATUS = res.Get("ESTATUS"); pedido.SUBTOTAL = res.GetDouble("SUBTOTAL"); pedido.ENVIO = res.GetDouble("ENVIO"); pedido.COMISION_TARJETA = res.GetDouble("COMISION_TARJETA"); pedido.TOTAL = res.GetDouble("TOTAL"); pedido.METODO_PAGO = res.Get("METODO_PAGO"); pedido.PAGO_EFECTIVO = res.Get("PAGO_EFECTIVO"); pedido.FECHA_PAGO_EFECTIVO = res.Get("FECHA_PAGO_EFECTIVO"); pedido.TIENDA = res.Get("TIENDA"); pedido.IMAGEN_TIENDA = res.Get("IMAGEN_TIENDA"); pedido.BORRADO = res.Get("BORRADO"); pedido.FECHA_C = res.Get("FECHA_C"); pedido.FECHA_M = res.Get("FECHA_M"); pedido.FECHA_D = res.Get("FECHA_D"); pedido.USUARIO_C = res.Get("USUARIO_C"); pedido.USUARIO_M = res.Get("USUARIO_M"); pedido.USUARIO_D = res.Get("USUARIO_D"); aux = new PedidoDetalleModel(); aux.PK_PEDIDO = pedido.PK; pedido.LISTA = aux.getByPkPedido(); lista.Add(pedido); } } catch { } return(lista); }
public async Task <ActionResult> Post([FromBody] PedidosModel pedidom) { PedidosModel pedidoClone = new PedidosModel(); string listaProductosRecibidos = ""; string listaProductosRecibidosCalculado = ""; int result = 0; string msj = "¡Error al agregar pedido intente más tarde!", fecha_entrega = ""; DateTime DAT; try { TiendasModel tienda1 = new TiendasModel(); tienda1.PK = pedidom.PK_TIENDA; tienda1.obtenerTiendaPorPK(); try { //Formato "martes 5 de mayo 2020" DAT = DateTime.Parse(pedidom.FECHA_ENTREGA, CultureInfo.CreateSpecificCulture("es-MX")); } catch (Exception e) { LogModel.registra("Error Agregar pedido al convertir fecha:", e.ToString() + " {FECHA_ENTREGA=" + pedidom.FECHA_ENTREGA + "}"); try//Formato "martes 5 de mayo 2020" { string[] fecha = pedidom.FECHA_ENTREGA.Split(" "); DAT = DateTime.Parse(fecha[4] + "-" + fecha[3] + "-" + fecha[1], CultureInfo.CreateSpecificCulture("es-MX")); } catch (Exception e1) {//en caso de no poder convertir la fecha que recibo tengo que calcularla LogModel.registra("Error Agregar pedido al convertir fecha:", e1.ToString()); if (pedidom.PK_COSTO_ENVIO.Equals("2"))//ESPRESS { DAT = DateTime.Now.AddDays(1); } else //calculo entrega normal { DAT = obtenerFechaEntrega(tienda1, pedidom.PK_POLIGONO); } } } fecha_entrega = DAT.ToString("dddd dd ", CultureInfo.CreateSpecificCulture("es-MX")) + "de" + DAT.ToString(" MMMM yyyy", CultureInfo.CreateSpecificCulture("es-MX")); pedidom.FECHA_ENTREGA = DAT.ToString("yyyy-MM-dd"); //COPIA TODO EL CONTENIDO A UN NUEVO PEDIDO PARA VOLVER A CALCULAR PRECIOS DE PRODUCTO, SUBTOTAL, TOTAL DEL PEDIDO pedidoClone.PK_CLIENTE = pedidom.PK_CLIENTE; pedidoClone.DIRECCION = pedidom.DIRECCION; pedidoClone.LATITUD = pedidom.LATITUD; pedidoClone.LONGITUD = pedidom.LONGITUD; pedidoClone.PK_TIENDA = pedidom.PK_TIENDA; pedidoClone.ENVIO = pedidom.ENVIO; pedidoClone.SUBTOTAL = pedidom.SUBTOTAL; pedidoClone.COMISION_TARJETA = pedidom.COMISION_TARJETA; pedidoClone.TOTAL = pedidom.TOTAL; pedidoClone.METODO_PAGO = pedidom.METODO_PAGO; pedidoClone.PK_COSTO_ENVIO = pedidom.PK_COSTO_ENVIO; pedidoClone.FECHA_ENTREGA = pedidom.FECHA_ENTREGA; pedidoClone.CODIGO_DESCUENTO = pedidom.CODIGO_DESCUENTO; pedidoClone.DESCUENTO = pedidom.DESCUENTO; pedidoClone.SOURCE_ID = pedidom.SOURCE_ID; pedidoClone.DEVICE_SESSION_ID = pedidom.DEVICE_SESSION_ID; pedidoClone.CVV2 = pedidom.CVV2; pedidoClone.COSTUMER_ID = pedidom.COSTUMER_ID; pedidoClone.LISTA = new List <PedidoDetalleModel>(); if (pedidom.LISTA != null) { double Total = 0; PedidoDetalleModel aux; ProductosModel producto = new ProductosModel(); foreach (PedidoDetalleModel detalle in pedidom.LISTA) { producto.PK = detalle.PK_PRODUCTO; aux = new PedidoDetalleModel(); aux.PK = detalle.PK; aux.PK_PEDIDO = detalle.PK_PEDIDO; aux.PK_PRODUCTO = detalle.PK_PRODUCTO; aux.PRODUCTO = detalle.PRODUCTO; aux.DESCRIPCION = detalle.DESCRIPCION; aux.TIENDA = detalle.TIENDA; if (producto.getPrecioByPK()) { try { aux.PRECIO = double.Parse(producto.PRECIO); } catch (Exception e) { LogModel.registra("Agregar pedido error al obtener precio de producto", e.ToString()); aux.PRECIO = 0; } } else { LogModel.registra("Precio del producto no encotrado", "PK_PRODUCTO:" + detalle.PK_PRODUCTO + ", PRECIO:" + detalle.PRECIO); aux.PRECIO = detalle.PRECIO; } aux.CANTIDAD = detalle.CANTIDAD; aux.DETALLES = detalle.DETALLES; aux.IMAGEN = detalle.IMAGEN; aux.BORRADO = detalle.BORRADO; aux.FECHA_C = detalle.FECHA_C; aux.FECHA_M = detalle.FECHA_M; aux.FECHA_D = detalle.FECHA_D; aux.USUARIO_C = detalle.USUARIO_C; aux.USUARIO_M = detalle.USUARIO_M; aux.USUARIO_D = detalle.USUARIO_D; Total += (aux.CANTIDAD * aux.PRECIO); pedidoClone.LISTA.Add(aux); listaProductosRecibidos += "{PK_PRODUCTO:" + detalle.PK_PRODUCTO + ",PRECIO:" + detalle.PRECIO + ",CANTIDAD:" + detalle.CANTIDAD + ",DETALLES:" + detalle.DETALLES + "},"; listaProductosRecibidosCalculado += "{PK_PRODUCTO:" + aux.PK_PRODUCTO + ",PRECIO:" + aux.PRECIO + ",CANTIDAD:" + aux.CANTIDAD + ",DETALLES:" + aux.DETALLES + "},"; } pedidoClone.SUBTOTAL = Total; CostosEnviosModel ce = new CostosEnviosModel(); ce.PK = pedidoClone.PK_COSTO_ENVIO; if (ce.getCostoByPk()) { Total += ((ce.COSTO) - (ce.COSTO * pedidoClone.DESCUENTO / 100)); } else { Total += ce.COSTO; } double factor = double.Parse(VariablesModel.getVariableValue("FACTOR")); double suma = double.Parse(VariablesModel.getVariableValue("SUMA")); double COMISION_TARJETA = 0; if (factor > 0) { COMISION_TARJETA = Total * factor; } COMISION_TARJETA += suma; pedidoClone.COMISION_TARJETA = COMISION_TARJETA; pedidoClone.TOTAL = Total + COMISION_TARJETA; } if (pedidoClone.agregar()) { try { PedidosRecibidosModel prm = new PedidosRecibidosModel(); prm.PK_PEDIDO = long.Parse(pedidoClone.PK); prm.RECIBIDO = "{PK:" + pedidom.PK + ",PK_CLIENTE:" + pedidom.PK_CLIENTE + ",DIRECCION:\"" + pedidom.DIRECCION + "\",LATITUD:\"" + pedidom.LATITUD + "\",LONGITUD:\"" + pedidom.LONGITUD + "\",SUBTOTAL:" + pedidom.SUBTOTAL + ",ENVIO:" + pedidom.ENVIO + ",COMISION_TARJETA:" + pedidom.COMISION_TARJETA + ",TOTAL:" + pedidom.TOTAL + ",METODO_PAGO:\"" + pedidom.METODO_PAGO + "\",PK_TIENDA:" + pedidom.PK_TIENDA + ",PK_COSTO_ENVIO:" + pedidom.PK_COSTO_ENVIO + ",CODIGO_DESCUENTO:" + pedidom.CODIGO_DESCUENTO + ",DESCUENTO:" + pedidom.DESCUENTO + ",LISTA:[" + listaProductosRecibidos + "]" + "}"; prm.CALCULADO = "{PK:" + pedidoClone.PK + ",PK_CLIENTE:" + pedidoClone.PK_CLIENTE + ",DIRECCION:\"" + pedidoClone.DIRECCION + "\",LATITUD:\"" + pedidoClone.LATITUD + "\",LONGITUD:\"" + pedidoClone.LONGITUD + "\",SUBTOTAL:" + pedidoClone.SUBTOTAL + ",ENVIO:" + pedidoClone.ENVIO + ",COMISION_TARJETA:" + pedidoClone.COMISION_TARJETA + ",TOTAL:" + pedidoClone.TOTAL + ",METODO_PAGO:\"" + pedidoClone.METODO_PAGO + "\",PK_TIENDA:" + pedidoClone.PK_TIENDA + ",PK_COSTO_ENVIO:" + pedidoClone.PK_COSTO_ENVIO + ",CODIGO_DESCUENTO:" + pedidoClone.CODIGO_DESCUENTO + ",DESCUENTO:" + pedidoClone.DESCUENTO + ",LISTA:[" + listaProductosRecibidos + "]" + "}"; prm.agregar(); } catch (Exception exc) { LogModel.registra("Error al registrar PedidosRecibidos AgregarPedidoController", exc.ToString()); } try { DireccionesClientesModel dir = new DireccionesClientesModel(); dir.LATITUD = pedidoClone.LATITUD; dir.LONGITUD = pedidoClone.LONGITUD; dir.PK_CLIENTE = pedidoClone.PK_CLIENTE; dir.DIRECCION = pedidoClone.DIRECCION; if (dir.existeDireccion()) { dir.CONTADOR++; dir.actualizaContador(); } else { dir.CONTADOR = 1; dir.creaDireccion(); } } catch (Exception e) { LogModel.registra("Error al guardar dirección AgregarPedidoController", e.ToString()); } if (!pedidoClone.SOURCE_ID.Equals("EFECTIVO") && !pedidoClone.SOURCE_ID.Equals("TERMINAL")) { if (pedidoClone.pagar()) { try { NotificacionesModel notifica = new NotificacionesModel(); TiendasModel tienda = new TiendasModel(); tienda.PK = pedidoClone.PK_TIENDA; ClientesModel cliente = new ClientesModel(); cliente.PK = pedidoClone.PK_CLIENTE; if (tienda.obtenerTiendaPorPK() && cliente.getTokenClienteByPk()) { notifica.TITLE = "Nuevo pedido"; notifica.MESSAGE = cliente.NOMBRE + " ha registrado un nuevo pedido: " + pedidoClone.PK; notifica.TOKENS.Add(tienda.TOKEN); await notifica.sendNotificationAsync(); } } catch (Exception e) { LogModel.registra("Error al enviar notificación", e.ToString()); } result = 1; msj = "¡Pedido agregado!"; } else { result = 0; if (!string.IsNullOrEmpty(pedidoClone.ERROR)) { msj = pedidoClone.ERROR; } else { msj = "¡Ocurriò un error al procesar pago intente más tarde!"; } } } else { try { NotificacionesModel notifica = new NotificacionesModel(); TiendasModel tienda = new TiendasModel(); tienda.PK = pedidoClone.PK_TIENDA; ClientesModel cliente = new ClientesModel(); cliente.PK = pedidoClone.PK_CLIENTE; if (tienda.obtenerTiendaPorPK() && cliente.getTokenClienteByPk()) { notifica.TITLE = "Nuevo pedido"; notifica.MESSAGE = cliente.NOMBRE + " ha registrado un nuevo pedido: " + pedidoClone.PK; notifica.TOKENS.Add(tienda.TOKEN); await notifica.sendNotificationAsync(); } } catch (Exception e) { LogModel.registra("Error al enviar notificación", e.ToString()); } result = 1; msj = "¡Pedido agregado!"; } } } catch (Exception e) { result = 0; msj = "¡Error al agregar pedido intente más tarde!"; LogModel.registra("Error al agregar pedido", e.ToString()); } return(Ok(new { resultado = result, mensaje = msj, pedido = pedidoClone, entrega = fecha_entrega })); }