protected override bool AccionGuardar() { if (!this.Validar()) { return(false); } Cargando.Mostrar(); MetaVendedor oReg; foreach (DataGridViewRow oFila in this.dgvDatos.Rows) { if (oFila.IsNewRow) { continue; } int iId = this.dgvDatos.ObtenerId(oFila); // Util.ConvertirEntero(oFila.Cells["__Id"].Value); int iCambio = this.dgvDatos.ObtenerIdCambio(oFila); // Util.ConvertirEntero(oFila.Cells["__Cambio"].Value); switch (iCambio) { case Cat.TiposDeAfectacion.Agregar: case Cat.TiposDeAfectacion.Modificar: if (iCambio == Cat.TiposDeAfectacion.Agregar) { oReg = new MetaVendedor(); } else { oReg = Datos.GetEntity <MetaVendedor>(c => c.MetaVendedorID == iId); } oReg.VendedorID = Util.Entero(oFila.Cells["UsuarioID"].Value); oReg.SucursalID = Util.Entero(oFila.Cells["SucursalID"].Value); oReg.EsGerente = Util.Logico(oFila.Cells["EsGerente"].Value); oReg.MetaConsiderar9500 = Util.Logico(oFila.Cells["MetaConsiderar9500"].Value); oReg.SueldoFijo = Util.Decimal(oFila.Cells["SueldoFijo"].Value); oReg.SueldoMeta = Util.Decimal(oFila.Cells["SueldoMeta"].Value); oReg.SueldoMinimo = Util.Decimal(oFila.Cells["SueldoMinimo"].Value); oReg.IncrementoUtil = Util.Decimal(oFila.Cells["IncrementoUtil"].Value); oReg.IncrementoFijo = Util.Decimal(oFila.Cells["IncrementoFijo"].Value); oReg.Porcentaje9500 = Util.Decimal(oFila.Cells["Porcentaje9500"].Value); Datos.Guardar <MetaVendedor>(oReg); break; case Cat.TiposDeAfectacion.Borrar: oReg = Datos.GetEntity <MetaVendedor>(c => c.MetaVendedorID == iId); Datos.Eliminar <MetaVendedor>(oReg); break; } } Cargando.Cerrar(); this.CargarDatos(); return(true); }
protected override bool AccionGuardar() { if (!this.Validar()) return false; Cargando.Mostrar(); MetaVendedor oReg; foreach (DataGridViewRow oFila in this.dgvDatos.Rows) { if (oFila.IsNewRow) continue; int iId = this.dgvDatos.ObtenerId(oFila); // Util.ConvertirEntero(oFila.Cells["__Id"].Value); int iCambio = this.dgvDatos.ObtenerIdCambio(oFila); // Util.ConvertirEntero(oFila.Cells["__Cambio"].Value); switch (iCambio) { case Cat.TiposDeAfectacion.Agregar: case Cat.TiposDeAfectacion.Modificar: if (iCambio == Cat.TiposDeAfectacion.Agregar) oReg = new MetaVendedor(); else oReg = Datos.GetEntity<MetaVendedor>(c => c.MetaVendedorID == iId); oReg.VendedorID = Util.Entero(oFila.Cells["UsuarioID"].Value); oReg.SucursalID = Util.Entero(oFila.Cells["SucursalID"].Value); oReg.EsGerente = Util.Logico(oFila.Cells["EsGerente"].Value); oReg.MetaConsiderar9500 = Util.Logico(oFila.Cells["MetaConsiderar9500"].Value); oReg.SueldoFijo = Util.Decimal(oFila.Cells["SueldoFijo"].Value); oReg.SueldoMeta = Util.Decimal(oFila.Cells["SueldoMeta"].Value); oReg.SueldoMinimo = Util.Decimal(oFila.Cells["SueldoMinimo"].Value); oReg.IncrementoUtil = Util.Decimal(oFila.Cells["IncrementoUtil"].Value); oReg.IncrementoFijo = Util.Decimal(oFila.Cells["IncrementoFijo"].Value); oReg.Porcentaje9500 = Util.Decimal(oFila.Cells["Porcentaje9500"].Value); Datos.Guardar<MetaVendedor>(oReg); break; case Cat.TiposDeAfectacion.Borrar: oReg = Datos.GetEntity<MetaVendedor>(c => c.MetaVendedorID == iId); Datos.Eliminar<MetaVendedor>(oReg); break; } } Cargando.Cerrar(); this.CargarDatos(); return true; }
private void LlenarVentasProc() { // Se muestra la ventana de "Cargando.." Cargando.Mostrar(); int iVendedorID = Util.Entero(this.cmbVendedor.SelectedValue); this.oComisiones.ctlDetalle.LimpiarDetalle(); //this.dgvGerentesComisiones.Visible = false; this.pnlUtVendedores.Visible = false; //this.lblUtilSuc.Visible = false; // Se muestra u oculta la columna de Utilidad this.dgvVentas.Columns["Utilidad"].Visible = this.bVerAdicional; this.dgvTotales.Columns["TotalesUtilidad"].Visible = this.bVerAdicional; // Se obtienen los datos del vendedor this.oMetaVendedor = Datos.GetEntity <MetaVendedor>(c => c.VendedorID == iVendedorID); if (this.oMetaVendedor == null) { Cargando.Cerrar(); UtilLocal.MensajeInformacion("No se ha especificado una meta al vendedor."); return; } this.oMetaSucursal = Datos.GetEntity <MetaSucursal>(c => c.SucursalID == this.oMetaVendedor.SucursalID); this.mMetaSucursal = this.oMetaSucursal.UtilSucursal; this.mMetaVendedor = (this.oMetaVendedor.EsGerente ? this.oMetaSucursal.UtilGerente : this.oMetaSucursal.UtilVendedor); // Quitar variables globales de metavendedor y metasucursa, sólo deberían usarse las locales. Revisar // Se manda llamar el procedimiento para obtener los datos var oParams = new Dictionary <string, object>(); oParams.Add("ModoID", 1); oParams.Add("VendedorID", iVendedorID); oParams.Add("Desde", this.dtpDe.Value.Date); oParams.Add("Hasta", this.dtpA.Value.Date); oParams.Add("SucursalID", Theos.SucursalID); //var oDatos = Datos.ExecuteProcedure<pauComisiones_Result>("pauComisiones", oParams); var oDatos = Datos.ExecuteProcedure <pauComisiones2_Result>("pauComisiones2test", oParams).OrderBy(c => c.Caracteristica == "D"); //var oDatos = Datos.ExecuteProcedure<pauComisiones2_Result>("pauComisiones", oParams); //var oDatos = Datos.ExecuteProcedure<pauComisiones2_Result>("pauComisiones3test5", oParams); #region LLenarGrid // Se llena el grid this.dgvVentas.Rows.Clear(); foreach (var oReg in oDatos) { //int iFila = this.dgvVentas.Rows.Add(oReg.VentaID, oReg.Caracteristica, oReg.Fecha, oReg.Cliente, oReg.Folio, oReg.Importe, oReg.Cobranza // , oReg.Utilidad, oReg.Comision, (oReg.Caracteristica.EndsWith("9500") ? "SÍ" : "")); int iFila = this.dgvVentas.Rows.Add(oReg.VentaID, oReg.Caracteristica, oReg.Fecha, oReg.Cliente, oReg.Folio, oReg.Importe, oReg.Cobranza , oReg.Utilidad, oReg.Comision, oReg.ComisionFija, (oReg.Es9500.Valor() ? "SÍ" : "")); // Se marcan los colores switch (oReg.Caracteristica) { case "VD9500": case "VD": this.dgvVentas.Rows[iFila].DefaultCellStyle.ForeColor = Color.Gray; break; case "D9500": case "D": this.dgvVentas.Rows[iFila].DefaultCellStyle.ForeColor = Color.Red; break; } } #endregion // Se llena la línea de totales, del grid decimal mTotalImporte = 0, mTotalCobranza = 0; decimal mComision = 0, mUtilidad = 0; decimal mComisionVariable = 0, mComisionNegativa = 0; decimal mComision9500 = 0, mUtilidad9500 = 0, mComNeg9500 = 0, mUtilNeg9500 = 0; decimal mComisionFija = 0; decimal mComisionFijaDev = 0; decimal mComision9500Dev = 0; #region CalculaComisiones foreach (DataGridViewRow Fila in this.dgvVentas.Rows) { mTotalImporte += Util.Decimal(Fila.Cells["Importe"].Value); mTotalCobranza += Util.Decimal(Fila.Cells["Cobranza"].Value); mUtilidad += Util.Decimal(Fila.Cells["Utilidad"].Value); mComision = Util.Decimal(Fila.Cells["Comision"].Value); // bool b9500 = Util.Cadena(Fila.Cells["Caracteristica"].Value).Contains("9500"); bool b9500 = (Util.Cadena(Fila.Cells["Detalle_9500"].Value) == "SÍ"); //si es 9500 y es devolución se suman la cantidad if (b9500) { if (Util.Cadena(Fila.Cells["Caracteristica"].Value).Substring(0, 1) == "D") { mComision9500Dev += Util.Decimal(Fila.Cells["Comision"].Value); } } if (Util.Cadena(Fila.Cells["Caracteristica"].Value).Substring(0, 1) == "V") { mComisionVariable += mComision; mComision9500 += (b9500 ? mComision : 0); mUtilidad9500 += (b9500 ? mUtilidad : 0); mComisionFija += Util.Decimal(Fila.Cells["ComisionFija"].Value); } else { //mComisionNegativa += mComision; if (!b9500) { mComisionNegativa += Util.Decimal(Fila.Cells["Comision"].Value); } mComNeg9500 += (b9500 ? mComision : 0); mUtilNeg9500 += (b9500 ? mUtilidad : 0); mComisionFijaDev += Util.Decimal(Fila.Cells["ComisionFija"].Value); } // Para sumar la comisión de las ventas 9500 /* if (Util.ConvertirCadena(Fila.Cells["Caracteristica"].Value) == "V9500") * { * mComision9500 += mComision; * mUtilidad9500 += mUtilidad; * } */ } #endregion this.dgvTotales["TotalesImporte", 0].Value = mTotalImporte; this.dgvTotales["TotalesCobranza", 0].Value = mTotalCobranza; this.dgvTotales["TotalesUtilidad", 0].Value = mUtilidad; this.dgvTotales["TotalesComision", 0].Value = (mComisionVariable + mComisionNegativa + mComNeg9500); //se cambio a resta, original suma this.dgvTotales["TotalFija", 0].Value = mComisionFija; // Se obtienen los totales de tienda this.LlenarUtilidadSuc(); #region LlenarEtiquetas // Se llenan los totales del vendedor decimal mFijo = this.oMetaVendedor.SueldoFijo; decimal mUtilidadSuc = this.mUtilidadSuc; // (this.mUtilidadSuc - this.mGastoSuc); // Se calcula el total decimal mUtilMinimo = (this.oMetaVendedor.EsGerente ? this.oMetaSucursal.UtilGerente : this.oMetaSucursal.UtilVendedor); decimal mComisionGerente = 0; if (mUtilidadSuc >= this.oMetaSucursal.UtilSucursalMinimo && mUtilidad >= mUtilMinimo) { if (this.oMetaVendedor.EsGerente) { /* * decimal mExcedente = (mUtilidadSuc - this.mMetaSucursal); * int iMultiplicador = (int)(mExcedente / this.oMetaVendedor.IncrementoUtil.Valor()); * decimal mComisionGerente = (this.oMetaVendedor.IncrementoFijo.Valor() * iMultiplicador); */ mComisionGerente = VentasProc.CalcularComisionGerente(this.oMetaSucursal.UtilSucursalMinimo, mUtilidadSuc, this.oMetaVendedor.IncrementoUtil.Valor() , this.oMetaVendedor.IncrementoFijo.Valor()); this.lblVariable.Text = mComisionGerente.ToString(GlobalClass.FormatoMoneda); this.lblTotal.Text = (this.oMetaVendedor.SueldoFijo + mComisionGerente + mComision9500 + (mComNeg9500)).ToString(GlobalClass.FormatoMoneda); } } else { //if (this.oMetaVendedor.EsGerente) // this.lblVariable.Text = 0.ToString(GlobalClass.FormatoMoneda); //this.lblTotal.Text = "--"; } if (!this.oMetaVendedor.MetaConsiderar9500) { mUtilidad -= mUtilidad9500; } //this.lblUtilSuc.Text = mUtilidadSuc.ToString(GlobalClass.FormatoMoneda); //subtotal comisiones y fijo this.lblFijo.Text = mFijo.ToString(GlobalClass.FormatoMoneda); //subtotal variable if (this.oMetaVendedor.EsGerente) { this.lblVariable.Text = mComisionGerente.ToString(GlobalClass.FormatoMoneda); this.lblDevoluciones.Text = 0.ToString(GlobalClass.FormatoMoneda); this.lblSubVariable.Text = mComisionGerente.ToString(GlobalClass.FormatoMoneda); } else { this.lblVariable.Text = (mComisionVariable - mComision9500).ToString(GlobalClass.FormatoMoneda); this.lblDevoluciones.Text = (mComisionNegativa).ToString(GlobalClass.FormatoMoneda); this.lblSubVariable.Text = ((mComisionVariable - mComision9500) - Math.Abs(mComisionNegativa)).ToString(GlobalClass.FormatoMoneda); } //Subtotal 9500 this.lbl9500.Text = (mComision9500).ToString(GlobalClass.FormatoMoneda); this.lblDev9500.Text = (mComision9500Dev).ToString(GlobalClass.FormatoMoneda); this.lblSub9500.Text = (mComision9500 - Math.Abs(mComision9500Dev)).ToString(GlobalClass.FormatoMoneda); //subtotal comision fija //this.lblTotal.Text = (mFijo + mComisionVariable + (mComisionNegativa)).ToString(GlobalClass.FormatoMoneda); this.lblComisionFija.Text = (mComisionFija).ToString(GlobalClass.FormatoMoneda); this.lblDevFija.Text = (mComisionFijaDev).ToString(GlobalClass.FormatoMoneda); this.lblSubFija.Text = (mComisionFija + mComisionFijaDev).ToString(GlobalClass.FormatoMoneda); decimal Total = 0; //total y meta if (this.oMetaVendedor.EsGerente) { Total = (mFijo + (mComisionGerente) + mComision9500 + mComisionFija + mComision9500Dev); } else { Total = (mFijo + (mComisionVariable - mComision9500) + mComision9500 + mComisionFija + mComisionFijaDev + mComisionNegativa + mComision9500Dev); } this.lblTotal.Text = (Total).ToString(GlobalClass.FormatoMoneda); if (this.oMetaVendedor.SueldoMeta - Total < 0) { this.lblMetaRes.Text = (0).ToString(GlobalClass.FormatoMoneda); } else { this.lblMetaRes.Text = (this.oMetaVendedor.SueldoMeta - Total).ToString(GlobalClass.FormatoMoneda); } #endregion if (this.oMetaVendedor.EsGerente) { decimal meta = this.oMetaSucursal.UtilSucursalMinimo; ComisionesVendedorPorSucursal(mUtilidadSuc, this.oMetaSucursal.UtilSucursalMinimo, mComisionGerente); } // Se cierra la ventana de "Cargando.." Cargando.Cerrar(); this.ComisionesAct = true; }
private void LlenarVentasProc() { // Se muestra la ventana de "Cargando.." Cargando.Mostrar(); // int iVendedorID = Util.Entero(this.cmbVendedor.SelectedValue); // this.dgvVentas.Columns.Clear(); // this.dgvVentas.DataSource = null; this.oComisiones.ctlDetalle.LimpiarDetalle(); // Se muestra u oculta la columna de Utilidad this.dgvVentas.Columns["Utilidad"].Visible = this.bVerAdicional; this.dgvTotales.Columns["TotalesUtilidad"].Visible = this.bVerAdicional; // Se obtienen los datos del vendedor this.oMetaVendedor = Datos.GetEntity<MetaVendedor>(c => c.VendedorID == iVendedorID); this.oMetaSucursal = Datos.GetEntity<MetaSucursal>(c => c.SucursalID == this.oMetaVendedor.SucursalID); this.mMetaSucursal = this.oMetaSucursal.UtilSucursal; this.mMetaVendedor = (this.oMetaVendedor.EsGerente ? this.oMetaSucursal.UtilGerente : this.oMetaSucursal.UtilVendedor); // Quitar variables globales de metavendedor y metasucursa, sólo deberían usarse las locales. Revisar // Se manda llamar el procedimiento para obtener los datos var oParams = new Dictionary<string, object>(); oParams.Add("ModoID", 1); oParams.Add("VendedorID", iVendedorID); oParams.Add("Desde", this.dtpDe.Value.Date); oParams.Add("Hasta", this.dtpA.Value.Date); //var oDatos = Datos.ExecuteProcedure<pauComisiones_Result>("pauComisiones", oParams); var oDatos = Datos.ExecuteProcedure<pauComisiones2_Result>("pauComisiones2", oParams); // Se llena el grid this.dgvVentas.Rows.Clear(); foreach (var oReg in oDatos) { // int iFila = this.dgvVentas.Rows.Add(oReg.VentaID, oReg.Caracteristica, oReg.Fecha, oReg.Cliente, oReg.Folio, oReg.Importe, oReg.Cobranza // , oReg.Utilidad, oReg.Comision, (oReg.Caracteristica.EndsWith("9500") ? "SÍ" : "")); int iFila = this.dgvVentas.Rows.Add(oReg.VentaID, oReg.Caracteristica, oReg.Fecha, oReg.Cliente, oReg.Folio, oReg.Importe, oReg.Cobranza , oReg.Utilidad, oReg.Comision, oReg.ComisionFija, (oReg.Es9500.Valor() ? "SÍ" : "")); // Se marcan los colores switch (oReg.Caracteristica) { case "VD9500": case "VD": this.dgvVentas.Rows[iFila].DefaultCellStyle.ForeColor = Color.Gray; break; case "D9500": case "D": this.dgvVentas.Rows[iFila].DefaultCellStyle.ForeColor = Color.Red; break; } } // Se llena la línea de totales, del grid decimal mTotalImporte = 0, mTotalCobranza = 0; decimal mComision = 0, mUtilidad = 0; decimal mComisionVariable = 0, mComisionNegativa = 0; decimal mComision9500 = 0, mUtilidad9500 = 0, mComNeg9500 = 0, mUtilNeg9500 = 0; foreach (DataGridViewRow Fila in this.dgvVentas.Rows) { mTotalImporte += Util.Decimal(Fila.Cells["Importe"].Value); mTotalCobranza += Util.Decimal(Fila.Cells["Cobranza"].Value); mUtilidad += Util.Decimal(Fila.Cells["Utilidad"].Value); mComision = Util.Decimal(Fila.Cells["Comision"].Value); // bool b9500 = Util.Cadena(Fila.Cells["Caracteristica"].Value).Contains("9500"); bool b9500 = (Util.Cadena(Fila.Cells["Detalle_9500"]) == "SÍ"); if (Util.Cadena(Fila.Cells["Caracteristica"].Value).Substring(0, 1) == "V") { mComisionVariable += mComision; mComision9500 += (b9500 ? mComision : 0); mUtilidad9500 += (b9500 ? mUtilidad : 0); } else { mComisionNegativa += mComision; mComNeg9500 += (b9500 ? mComision : 0); mUtilNeg9500 += (b9500 ? mUtilidad : 0); } // Para sumar la comisión de las ventas 9500 /* if (Util.ConvertirCadena(Fila.Cells["Caracteristica"].Value) == "V9500") { mComision9500 += mComision; mUtilidad9500 += mUtilidad; } */ } this.dgvTotales["TotalesImporte", 0].Value = mTotalImporte; this.dgvTotales["TotalesCobranza", 0].Value = mTotalCobranza; this.dgvTotales["TotalesUtilidad", 0].Value = mUtilidad; this.dgvTotales["TotalesComision", 0].Value = (mComisionVariable + mComisionNegativa); // Se obtienen los totales de tienda this.LlenarUtilidadSuc(); // Se llenan los totales del vendedor decimal mFijo = this.oMetaVendedor.SueldoFijo; decimal mUtilidadSuc = this.mUtilidadSuc; // (this.mUtilidadSuc - this.mGastoSuc); if (!this.oMetaVendedor.MetaConsiderar9500) mUtilidad -= mUtilidad9500; this.lblFijo.Text = mFijo.ToString(GlobalClass.FormatoMoneda); this.lblVariable.Text = (mComisionVariable - mComision9500).ToString(GlobalClass.FormatoMoneda); this.lbl9500.Text = (mComision9500).ToString(GlobalClass.FormatoMoneda); this.lblDevoluciones.Text = (mComisionNegativa).ToString(GlobalClass.FormatoMoneda); this.lblTotal.Text = (mFijo + mComisionVariable + (mComisionNegativa)).ToString(GlobalClass.FormatoMoneda); // Se calcula el total decimal mUtilMinimo = (this.oMetaVendedor.EsGerente ? this.oMetaSucursal.UtilGerente : this.oMetaSucursal.UtilVendedor); if (mUtilidadSuc >= this.oMetaSucursal.UtilSucursalMinimo && mUtilidad >= mUtilMinimo) { if (this.oMetaVendedor.EsGerente) { /* decimal mExcedente = (mUtilidadSuc - this.mMetaSucursal); int iMultiplicador = (int)(mExcedente / this.oMetaVendedor.IncrementoUtil.Valor()); decimal mComisionGerente = (this.oMetaVendedor.IncrementoFijo.Valor() * iMultiplicador); */ decimal mComisionGerente = VentasProc.CalcularComisionGerente(this.oMetaSucursal.UtilSucursalMinimo, mUtilidadSuc, this.oMetaVendedor.IncrementoUtil.Valor() , this.oMetaVendedor.IncrementoFijo.Valor()); this.lblVariable.Text = mComisionGerente.ToString(GlobalClass.FormatoMoneda); this.lblTotal.Text = (this.oMetaVendedor.SueldoFijo + mComisionGerente + mComision9500 + (mComNeg9500)).ToString(GlobalClass.FormatoMoneda); } } else { if (this.oMetaVendedor.EsGerente) this.lblVariable.Text = 0.ToString(GlobalClass.FormatoMoneda); this.lblTotal.Text = "--"; } // Se cierra la ventana de "Cargando.." Cargando.Cerrar(); this.ComisionesAct = true; }
public void Preparar(int iUsuarioID) { this.UsuarioID = iUsuarioID; // Se cargan datos de sucursal y usuario this.oMetaSucursal = Datos.GetEntity<MetaSucursal>(c => c.SucursalID == this.SucursalID); this.oMetaVendedor = Datos.GetEntity<MetaVendedor>(c => c.VendedorID == this.UsuarioID); }