private void Entidad_Bonificacion(int PKID, string Mecanica, int TipoMecanica, string CodigoObsequio, decimal CantidadMinima, int CantidadMaxima, int CantidadObsequio, int MaximoPorCliente, decimal Stock, bool Exclusion, int PkidExclusion, string CodigoVenta, string Proveedor, string Desde, string Hasta, bool Activo, int IDAsociado, DataGridView dgv) { using (var CTX = new LiderEntities()) { var Rutina = new Libreria.Rutina(); Rutina.Procedimiento("avila.pFB_GenerarID 'Bonificacion',''"); var IdBon = CTX.IDTablas.Where(w => w.Tabla == "Bonificacion").Select(s => s.ID).FirstOrDefault();; Bonificacion Bn = new Bonificacion(); Bn.PKID = IdBon; Bn.Mecanica = Mecanica; Bn.TipoMecanica = TipoMecanica; Bn.cdProductoRegalo = CodigoObsequio; Bn.CantidadMinima = CantidadMinima; Bn.CantidadMaxima = CantidadMaxima; Bn.CantidadRegalo = CantidadObsequio; Bn.CantidadMaximaPorCliente = MaximoPorCliente; Bn.Stock = Stock; Bn.StockEntregado = (decimal)0.00; Bn.TieneExclusion = Exclusion; Bn.IDBonifcacionExcluida = PkidExclusion; Bn.cdProductoVenta = CodigoVenta; Bn.IDProveedor = Proveedor; Bn.Desde = DateTime.Parse(Desde); Bn.Hasta = DateTime.Parse(Hasta); Bn.Activo = Activo; CTX.Bonificacions.Add(Bn); foreach (DataGridViewRow T in dgv.Rows) { Rutina.Procedimiento("avila.pFB_GenerarID 'ItemBonificacion',''"); ItemBonificacion Ib = new ItemBonificacion(); Ib.PKID = CTX.IDTablas.Where(w => w.Tabla == "ItemBonificacion").Select(s => s.ID).FirstOrDefault(); Ib.IDBonificacion = PKID; Ib.cdProductoColeccion = Convert.ToString(T.Cells["Codigo"].Value); Ib.IDAsociado = IDAsociado; CTX.ItemBonificacions.Add(Ib); } CTX.BatchSaveChanges(); Modificar(); } }
public void Evaluar_Bonificacion(DataGridView Grid, string Fecha) { var Ex = false; var x = 0; var y = 0; var FechaEmision = DateTime.Parse(Fecha); var proceso = new Libreria.Rutina(); using (var CTX = new LiderEntities()) { proceso.Procedimiento("sp_stock_sistema '" + DateTime.Now.Date.ToString("yyyyMMdd") + "',2"); proceso.Procedimiento("sp_stock_sistema_web '" + DateTime.Now.Date.ToString("yyyyMMdd") + "',2"); DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(System.Int32)); dt.Columns.Add("Cantidad", typeof(System.Decimal)); List <string> lista = new List <string>(); var bonificacion = from bn in CTX.Bonificacions where bn.Activo == true && FechaEmision >= bn.Desde && FechaEmision < bn.Hasta select bn; foreach (var Prom in bonificacion) { lista.Clear(); var Product = CTX.PRODUCTOes.Where(w => w.Producto1 == Prom.cdProductoRegalo).FirstOrDefault(); var coleccion = from ibn in CTX.ItemBonificacions where ibn.IDBonificacion == Prom.PKID select ibn; foreach (var items in coleccion) { lista.Add(items.cdProductoColeccion); } string Products = string.Join(",", lista.ToArray()); var MCantidad = (from pedido in Grid.Rows.Cast <DataGridViewRow>() where Products.Contains(pedido.Cells["Codigo"].Value.ToString()) select Convert.ToDecimal(pedido.Cells["Cantidad"].Value)).Sum(); var MSoles = (from pedido in Grid.Rows.Cast <DataGridViewRow>() where Products.Contains(pedido.Cells["Codigo"].Value.ToString()) select Convert.ToDecimal(pedido.Cells["Total"].Value)).Sum(); foreach (DataGridViewRow Fila in Grid.Rows) { if (Convert.ToInt32(Fila.Cells["IDBonificacion"].Value == string.Empty ? 0 : Fila.Cells["IDBonificacion"].Value) > 0) { if (Prom.IDBonifcacionExcluida == Convert.ToInt32(Fila.Cells["IDBonificacion"].Value)) { Ex = true; } } } if (CTX.ItemBonificacions.Where(w => w.IDBonificacion == Prom.PKID).Select(s => s.IDAsociado).FirstOrDefault() == 4) { if (MCantidad != null && MCantidad > 0) { x = (int)(MCantidad / Prom.CantidadMinima) * Prom.CantidadRegalo; switch (Prom.TipoMecanica) { case 1: if (MCantidad >= Prom.CantidadMinima) { if (!Prom.TieneExclusion) { Insertar(Prom.CantidadMaximaPorCliente, Product.StockDia, x, Grid, Prom.cdProductoRegalo, Product.Descripcion.Trim(), Product.UniMed.Trim(), Prom.PKID); } else { if (!Ex) { Insertar(Prom.CantidadMaximaPorCliente, Product.StockDia, x, Grid, Prom.cdProductoRegalo, Product.Descripcion.Trim(), Product.UniMed.Trim(), Prom.PKID); } } } break; case 2: if (MCantidad >= Prom.CantidadMinima && MCantidad < Prom.CantidadMaxima) { if (!Prom.TieneExclusion) { Insertar(Prom.CantidadMaximaPorCliente, Product.StockDia, x, Grid, Prom.cdProductoRegalo, Product.Descripcion.Trim(), Product.UniMed.Trim(), Prom.PKID); } else { if (!Ex) { Insertar(Prom.CantidadMaximaPorCliente, Product.StockDia, x, Grid, Prom.cdProductoRegalo, Product.Descripcion.Trim(), Product.UniMed.Trim(), Prom.PKID); } } } break; } } if (MSoles != null && MSoles > 0) { y = (int)(MSoles / Prom.CantidadMinima) * Prom.CantidadRegalo; switch (Prom.TipoMecanica) { case 3: if (MSoles >= Prom.CantidadMinima) { if (!Prom.TieneExclusion) { Insertar(Prom.CantidadMaximaPorCliente, Product.StockDia, y, Grid, Prom.cdProductoRegalo, Product.Descripcion.Trim(), Product.UniMed.Trim(), Prom.PKID); } else { if (!Ex) { Insertar(Prom.CantidadMaximaPorCliente, Product.StockDia, y, Grid, Prom.cdProductoRegalo, Product.Descripcion.Trim(), Product.UniMed.Trim(), Prom.PKID); } } } break; case 4: if (MSoles >= Prom.CantidadMinima && MSoles < Prom.CantidadMaxima) { if (!Prom.TieneExclusion) { Insertar(Prom.CantidadMaximaPorCliente, Product.StockDia, y, Grid, Prom.cdProductoRegalo, Product.Descripcion.Trim(), Product.UniMed.Trim(), Prom.PKID); } else { if (!Ex) { Insertar(Prom.CantidadMaximaPorCliente, Product.StockDia, y, Grid, Prom.cdProductoRegalo, Product.Descripcion.Trim(), Product.UniMed.Trim(), Prom.PKID); } } } break; } } } } } }
private void DESCARGAR_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (gridView1.SelectedRowsCount > 0) { var Rutina = new Libreria.Rutina(); if (Rutina.MensagePregunta("¿Continuar?") == DialogResult.Yes) { Elementos.frmMsg frmmensage = new Elementos.frmMsg(); frmmensage.Scm03.SplashFormStartPosition = SplashFormStartPosition.Default; frmmensage.dataGridView1.Columns[0].HeaderText = "Pedido"; frmmensage.dataGridView1.Columns[1].HeaderText = "Resultado"; frmmensage.dataGridView1.Columns[2].HeaderText = string.Empty; frmmensage.dataGridView1.Columns[3].HeaderText = string.Empty; frmmensage.Show(); frmmensage.Scm03.ShowWaitForm(); foreach (var pedido in gridView1.GetSelectedRows()) { entidad.pedido = gridView1.GetDataRow(pedido)["num Pedido"].ToString(); string tipopersona = Rutina.ConsultarCadena("TipoPersona", "pedido", "pedido = '" + entidad.pedido + "'"); entidad.tipodocumento = Rutina.ConsultarCadena("TipoDoc", "pedido", "pedido = '" + entidad.pedido + "'"); if (!Rutina.ExistenciaCampo("pedido", "pedido", "procesado = 1 and pedido = '" + entidad.pedido + "'")) { if (Rutina.ExistenciaCampo("pedido", "pedido", "statusweb is null and pedido = '" + entidad.pedido + "'")) { frmmensage.dataGridView1.Rows.Add(gridView1.GetDataRow(pedido)["num Pedido"].ToString(), "Documento Saliente Número : " + entidad.tipodocumento + Rutina.Procedimiento("sp_genera_documento '" + entidad.pedido + "','" + tipopersona + "','" + entidad.tipodocumento + "'"), string.Empty, string.Empty); Rutina.actualizar("pedido", "StatusWeb = 1", "pedido = '" + entidad.pedido + "'"); } else { frmmensage.dataGridView1.Rows.Add(gridView1.GetDataRow(pedido)["num Pedido"].ToString(), "pedido ya se encuentra descargado!", string.Empty, string.Empty); } } else { frmmensage.dataGridView1.Rows.Add(gridView1.GetDataRow(pedido)["num Pedido"].ToString(), "pedido se encuentra procesado y no puede ser eliminado!", string.Empty, string.Empty); } } frmmensage.Scm03.CloseWaitForm(); Refrescar(); } } }
private void btnAceptar_Click(object sender, EventArgs e) { List <string> lista = new List <string>(); foreach (var fila in gridView1.GetSelectedRows()) { lista.Add("'" + gridView1.GetDataRow(fila)["Codigo"].ToString() + "'"); } string codigos = string.Join(",", lista.ToArray()); // entidad.fecha = Convert.ToDateTime(FechaProceso.EditValue).ToString("yyyyMMdd"); if (FechaProceso.EditValue != null) { Modulos.Elementos.frmMsg frmmensage = new Modulos.Elementos.frmMsg(); if (proceso.MensagePregunta("Desea Continua") == DialogResult.Yes) { if (gridView1.SelectedRowsCount > 0) { var Formulario = new frmPrincipal(); Formulario.Scm01.SplashFormStartPosition = SplashFormStartPosition.Default; frmmensage.Show(); Formulario.Scm01.ShowWaitForm(); //evento # 01 proceso.Procedimiento("sp_stock_sistema '" + DateTime.Now.Date.ToString("yyyyMMdd") + "', 2"); proceso.Procedimiento("sp_stock_sistema_web '" + DateTime.Now.Date.ToString("yyyyMMdd") + "', 2"); ejecutar.horasBonificacion(); ejecutar.deleteBonificacion(entidad.fecha); //evento # 02 var bonificacion = proceso.ConsultarTabla_("Bonificacion", "(Activo = 1) AND ('" + entidad.fecha + "' >= Desde AND '" + entidad.fecha + "' <= Hasta)"); if (bonificacion.Rows.Count != 0) { foreach (DataRow drb in bonificacion.Rows) { entidad.existe = false; entidad.idbonificacion = Convert.ToInt32(drb["PKID"]); entidad.codigoregalo = drb["cdProductoRegalo"].ToString(); entidad.cantidadminima = Convert.ToDecimal(drb["CantidadMinima"]); entidad.cantidadmaxima = Convert.ToInt32(drb["CantidadMaxima"]); entidad.cantidadobsequio = Convert.ToInt32(drb["CantidadRegalo"]); entidad.cantidadmaximacliente = Convert.ToInt32(drb["CantidadMaximaPorCliente"]); entidad.cantidadstock = Convert.ToInt32(drb["Stock"]); entidad.cantidadstockentregado = Convert.ToInt32(drb["StockEntregado"]); entidad.exclusion = Convert.ToBoolean(drb["TieneExclusion"]); entidad.codigoexclusion = Convert.ToInt32(drb["IDBonifcacionExcluida"]); entidad.tipomecanica = Convert.ToInt32(drb["TipoMecanica"]); entidad.idasociado = proceso.ConsultarEntero("IDAsociado", "ItemBonificacion", "IDBonificacion = " + entidad.idbonificacion); entidad.codigoasociado = proceso.ConsultarCadena("Codigo", "TipoAsociado", "PKID = " + entidad.idasociado); if (entidad.idasociado == 4) { if (entidad.tipomecanica == 1) { entidad.table = proceso.EvaluarBonificacion( @" (dbo.Vva_Pedido.FechaEmision = '" + entidad.fecha + @"') AND (dbo.Producto." + entidad.codigoasociado + @" in (SELECT cdProductoColeccion FROM dbo.ItemBonificacion WHERE (IDBonificacion = " + entidad.idbonificacion + @"))) AND ( (dbo.Vva_Pedido.IDVend IN (" + codigos + @"))) AND (dbo.Vva_Pedido.Procesado = 0) AND (dbo.Vva_Pedido.Bajado is null) ", @" (SUM (dbo.Vva_ItemPedido.Cantidad) >= " + entidad.cantidadminima + ")"); if (entidad.table.Rows.Count == 0) { contador += 1; } entidad.suma = ((int)(from R in entidad.table.AsEnumerable() select Convert.ToDecimal(R["Cantidad"])).Sum() / entidad.cantidadminima) * entidad.cantidadobsequio; if (proceso.ExistenciaStock(entidad.codigoregalo, 0, entidad.suma)) { foreach (DataRow F00 in entidad.table.Rows) { entidad.codigopedido = F00["NrPedido"].ToString(); entidad.cantidadvendida = Convert.ToDecimal(F00["Cantidad"].ToString()); entidad.cantidadtotalregalo = (int)(entidad.cantidadvendida / entidad.cantidadminima) * entidad.cantidadobsequio; if (!entidad.exclusion) { if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo <= entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } else if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo > entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadmaximacliente); } else { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } } else { foreach (DataRow F01 in proceso.ConsultarTabla_("DETPEDIDO", "pedido = '" + entidad.codigopedido + "'").Rows) { if (Convert.ToInt32(F01["IDBonificacion"] is DBNull ? 0 : F01["IDBonificacion"]) > 0) { if (entidad.codigoexclusion == Convert.ToInt32(F01["IDBonificacion"] is DBNull ? 0 : F01["IDBonificacion"])) { entidad.existe = true; } } } if (!entidad.existe) { if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo <= entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } else if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo > entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadmaximacliente); } else { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } } } } } else { if (entidad.suma != 0) { frmmensage.dataGridView1.Rows.Add(entidad.codigoregalo, proceso.ConsultarCadena("Descripcion", "producto", "producto = '" + entidad.codigoregalo + "'"), entidad.suma, proceso.ConsultarCadena("StockAc", "Producto", "producto = '" + entidad.codigoregalo + "'")); } } } if (entidad.tipomecanica == 2) { entidad.table = proceso.EvaluarBonificacion( @" (dbo.Vva_Pedido.FechaEmision = '" + entidad.fecha + @"') AND (dbo.Producto." + entidad.codigoasociado + @" in (SELECT cdProductoColeccion FROM dbo.ItemBonificacion WHERE (IDBonificacion = " + entidad.idbonificacion + @"))) AND ( (dbo.Vva_Pedido.IDVend IN (" + codigos + @"))) AND (dbo.Vva_Pedido.Procesado = 0) AND (dbo.Vva_Pedido.Bajado is null) ", @"(SUM (dbo.Vva_ItemPedido.Cantidad) >= " + entidad.cantidadminima + ") " + "and (SUM (dbo.Vva_ItemPedido.Cantidad) < " + entidad.cantidadmaxima + ")"); if (entidad.table.Rows.Count == 0) { contador += 1; } entidad.suma = ((int)(from R in entidad.table.AsEnumerable() select Convert.ToDecimal(R["Cantidad"])).Sum() / entidad.cantidadminima) * entidad.cantidadobsequio; if (proceso.ExistenciaStock(entidad.codigoregalo, 0, entidad.suma)) { foreach (DataRow F00 in entidad.table.Rows) { entidad.codigopedido = F00["NrPedido"].ToString(); entidad.cantidadvendida = Convert.ToDecimal(F00["Cantidad"].ToString()); entidad.cantidadtotalregalo = (int)(entidad.cantidadvendida / entidad.cantidadminima) * entidad.cantidadobsequio; if (!entidad.exclusion) { if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo <= entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } else if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo > entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadmaximacliente); } else { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } } else { foreach (DataRow F01 in proceso.ConsultarTabla_("DETPEDIDO", "pedido = '" + entidad.codigopedido + "'").Rows) { if (Convert.ToInt32(F01["IDBonificacion"] is DBNull ? 0 : F01["IDBonificacion"]) > 0) { if (entidad.codigoexclusion == Convert.ToInt32(F01["IDBonificacion"] is DBNull ? 0 : F01["IDBonificacion"])) { entidad.existe = true; } } } if (!entidad.existe) { if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo <= entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } else if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo > entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadmaximacliente); } else { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } } } } } else { if (entidad.suma != 0) { frmmensage.dataGridView1.Rows.Add(entidad.codigoregalo, proceso.ConsultarCadena("Descripcion", "producto", "producto = '" + entidad.codigoregalo + "'"), entidad.suma, proceso.ConsultarCadena("StockAc", "Producto", "producto = '" + entidad.codigoregalo + "'")); } } } if (entidad.tipomecanica == 3) { proceso.consultar(@" SELECT Vva_Pedido.NrPedido, SUM (Vva_ItemPedido.Cantidad * Vva_ItemPedido.Precio) AS Cantidad FROM Vva_Pedido INNER JOIN Vva_ItemPedido ON Vva_Pedido.NrPedido = Vva_ItemPedido.NrPedido INNER JOIN PRODUCTO ON Vva_ItemPedido.IDProducto = PRODUCTO.Producto WHERE (Vva_Pedido.FechaEmision = '" + entidad.fecha + "') AND PRODUCTO." + entidad.codigoasociado + @" in (SELECT cdProductoColeccion FROM ItemBonificacion WHERE (IDBonificacion = " + entidad.idbonificacion + @")) AND ( (Vva_Pedido.IDVend IN (" + codigos + @"))) AND (Vva_Pedido.Procesado = 0) AND (dbo.Vva_Pedido.Bajado is null) GROUP BY Vva_Pedido.NrPedido HAVING (SUM (Vva_ItemPedido.Cantidad * Vva_ItemPedido.Precio) >= " + entidad.cantidadminima + ")", "Soles"); entidad.table = proceso.ds.Tables["Soles"]; if (entidad.table.Rows.Count == 0) { contador += 1; } entidad.suma = ((int)(from R in entidad.table.AsEnumerable() select Convert.ToDecimal(R["Cantidad"])).Sum() / entidad.cantidadminima) * entidad.cantidadobsequio; if (proceso.ExistenciaStock(entidad.codigoregalo, 0, entidad.suma)) { foreach (DataRow F00 in entidad.table.Rows) { entidad.codigopedido = F00["NrPedido"].ToString(); entidad.cantidadvendida = Convert.ToDecimal(F00["Cantidad"].ToString()); entidad.cantidadtotalregalo = (int)(entidad.cantidadvendida / entidad.cantidadminima) * entidad.cantidadobsequio; if (!entidad.exclusion) { if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo <= entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } else if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo > entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadmaximacliente); } else { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } } else { foreach (DataRow F01 in proceso.ConsultarTabla_("DETPEDIDO", "pedido = '" + entidad.codigopedido + "'").Rows) { if (Convert.ToInt32(F01["IDBonificacion"] is DBNull ? 0 : F01["IDBonificacion"]) > 0) { if (entidad.codigoexclusion == Convert.ToInt32(F01["IDBonificacion"] is DBNull ? 0 : F01["IDBonificacion"])) { entidad.existe = true; } } } if (!entidad.existe) { if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo <= entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } else if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo > entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadmaximacliente); } else { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } } } } } else { if (entidad.suma != 0) { frmmensage.dataGridView1.Rows.Add(entidad.codigoregalo, proceso.ConsultarCadena("Descripcion", "producto", "producto = '" + entidad.codigoregalo + "'"), entidad.suma, proceso.ConsultarCadena("StockAc", "Producto", "producto = '" + entidad.codigoregalo + "'")); } } } if (entidad.tipomecanica == 4) { proceso.consultar(@" SELECT Vva_Pedido.NrPedido, SUM (Vva_ItemPedido.Cantidad * Vva_ItemPedido.Precio) AS Cantidad FROM Vva_Pedido INNER JOIN Vva_ItemPedido ON Vva_Pedido.NrPedido = Vva_ItemPedido.NrPedido INNER JOIN PRODUCTO ON Vva_ItemPedido.IDProducto = PRODUCTO.Producto WHERE (Vva_Pedido.FechaEmision = '" + entidad.fecha + "') AND PRODUCTO." + entidad.codigoasociado + @" in (SELECT cdProductoColeccion FROM ItemBonificacion WHERE (IDBonificacion = " + entidad.idbonificacion + @")) AND ( (Vva_Pedido.IDVend IN (" + codigos + @"))) AND (Vva_Pedido.Procesado = 0) AND (dbo.Vva_Pedido.Bajado is null) GROUP BY Vva_Pedido.NrPedido HAVING (SUM (Vva_ItemPedido.Cantidad * Vva_ItemPedido.Precio) >= " + entidad.cantidadminima + ") and (SUM (Vva_ItemPedido.Cantidad * Vva_ItemPedido.Precio) < " + entidad.cantidadmaxima + ")", "Soles"); entidad.table = proceso.ds.Tables["Soles"]; if (entidad.table.Rows.Count == 0) { contador += 1; } entidad.suma = ((int)(from R in entidad.table.AsEnumerable() select Convert.ToDecimal(R["Cantidad"])).Sum() / entidad.cantidadminima) * entidad.cantidadobsequio; if (proceso.ExistenciaStock(entidad.codigoregalo, 0, entidad.suma)) { foreach (DataRow F00 in entidad.table.Rows) { entidad.codigopedido = F00["NrPedido"].ToString(); entidad.cantidadvendida = Convert.ToDecimal(F00["Cantidad"].ToString()); entidad.cantidadtotalregalo = (int)(entidad.cantidadvendida / entidad.cantidadminima) * entidad.cantidadobsequio; if (!entidad.exclusion) { if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo <= entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } else if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo > entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadmaximacliente); } else { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } } else { foreach (DataRow F01 in proceso.ConsultarTabla_("DETPEDIDO", "pedido = '" + entidad.codigopedido + "'").Rows) { if (Convert.ToInt32(F01["IDBonificacion"] is DBNull ? 0 : F01["IDBonificacion"]) > 0) { if (entidad.codigoexclusion == Convert.ToInt32(F01["IDBonificacion"] is DBNull ? 0 : F01["IDBonificacion"])) { entidad.existe = true; } } } if (!entidad.existe) { if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo <= entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } else if (entidad.cantidadmaximacliente > 0 && entidad.cantidadtotalregalo > entidad.cantidadmaximacliente) { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadmaximacliente); } else { ejecutar.insertObsequio(entidad.idbonificacion, entidad.codigopedido, entidad.codigoregalo, entidad.cantidadtotalregalo); } } } } } else { if (entidad.suma != 0) { frmmensage.dataGridView1.Rows.Add(entidad.codigoregalo, proceso.ConsultarCadena("Descripcion", "producto", "producto = '" + entidad.codigoregalo + "'"), entidad.suma, proceso.ConsultarCadena("StockAc", "Producto", "producto = '" + entidad.codigoregalo + "'")); } } } } } Formulario.Scm01.CloseWaitForm(); if (frmmensage.dataGridView1.Rows.Count == 0) { if (bonificacion.Rows.Count == contador) { frmmensage.dataGridView1.Rows.Add(string.Empty, "NO SE HA INGRESADO NINGUNA BONIFICACION", string.Empty, string.Empty); } else { frmmensage.dataGridView1.Rows.Add(string.Empty, "!! PROMOCIONES INSERTADAS CON EXITO !!", string.Empty, string.Empty); } this.Close(); } } else { Formulario.Scm01.CloseWaitForm(); frmmensage.dataGridView1.Rows.Add(string.Empty, " !! NO EXISTEN REGLAS DESIGNADAS PARA ESTE DIA !! ", string.Empty, string.Empty); this.Close(); } } else { MessageBox.Show("No existen vendedores seleccionados"); } proceso.Procedimiento("sp_stock_sistema '" + DateTime.Now.Date.ToString("yyyyMMdd") + "', 2"); proceso.Procedimiento("sp_stock_sistema_web '" + DateTime.Now.Date.ToString("yyyyMMdd") + "', 2"); } //ejecutar.Descargar_Pedidos_Web(entidad.fecha); } else { MessageBox.Show("No existe Fecha para procesar promociones"); } }