Ejemplo n.º 1
0
        void webPagina_Navigating(object sender, WebBrowserNavigatingEventArgs e)
        {
            const string sUrlVacio = "about:blank";

            if (e.Url.ToString() == sUrlVacio)
            {
                string sXmls = this.webPagina.Document.GetElementById("preXmls").InnerText;
                var    aXmls = sXmls.Split('\n');
                UtilLocal.MensajeInformacion(sXmls);
            }
        }
Ejemplo n.º 2
0
        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;
        }