public void Alta(TEMPORAL_PRECIO objeto)
 {
     using (SIST_SUPERMERCADOEntities ctx = SIST_SUPERMERCADOEntities.ObtenerInstancia())
     {
         ctx.TEMPORAL_PRECIO.AddObject(objeto);
         ctx.SaveChanges();
     }
 }
 public void Modificacion(TEMPORAL_PRECIO objeto)
 {
     using (SIST_SUPERMERCADOEntities ctx = SIST_SUPERMERCADOEntities.ObtenerInstancia())
     {
         ctx.TEMPORAL_PRECIO.Attach(objeto);
         ctx.ObjectStateManager.ChangeObjectState(objeto, System.Data.EntityState.Modified);
         ctx.SaveChanges();
     }
 }
 public TEMPORAL_PRECIO AltaConRetorno(TEMPORAL_PRECIO objeto)
 {
     using (SIST_SUPERMERCADOEntities ctx = SIST_SUPERMERCADOEntities.ObtenerInstancia())
     {
         ctx.TEMPORAL_PRECIO.AddObject(objeto);
         ctx.SaveChanges();
         return ObtenerPorID(objeto.TEMP_PRECIOID);
     }
 }
Пример #4
0
 public void ModificacionPrecio(TEMPORAL_PRECIO entidad)
 {
     mTEMPORAL_PRECIO.Modificacion( entidad);
 }
Пример #5
0
 public void BajaFisicaPrecio(TEMPORAL_PRECIO entidad)
 {
     mTEMPORAL_PRECIO.Baja(entidad);
 }
Пример #6
0
 public void AltaPrecio(TEMPORAL_PRECIO entidad)
 {
     mTEMPORAL_PRECIO.Alta(entidad);
 }
Пример #7
0
        public bool ValidacionBajaPrecio(TEMPORAL_PRECIO entidad)
        {
            //VALIDAR QUE EL CLIENTE NO TENGA ASIGNADA NINGUNA CTA CTE NI NOTA DE PEDIDO
            //    var cta = entidad.Cta_Ctes; // mCTACTES_CLI_FABS.ObtenerCtaCteCliente(eTEMPORALSTOCK);

            //    if (cta != null)
            //    {
            //        return false;
            //    }
            //    else
            //    {
            return true;
            //    }
        }
Пример #8
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                if (!Validar()) return;

                ReiniciarValidacionControl(txtNroDocumento);
                if (string.IsNullOrEmpty(txtNroDocumento.Text))
                {
                    ValidarTextboxObligatorio(txtNroDocumento, lblNroDocumento.Text);
                    return;
                }

                using (TransactionScope transaccion = new TransactionScope())
                {
                    var oMOV_CTA_CTE_PROV_FACTURA = new MOVIMIENTO_CTACTE_PROVEEDOR();

                    //1ro TENGO QUE DAR DE ALTA EL MOVIMIENTO DE LA CTA CTE O SEA LA FACTURA A LA CTA DEL PROVEEDOR
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_VALORMOVIMIENTO = Convert.ToDecimal(txtTotal.Text);
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_SALDOMOVIMIENTO = Convert.ToDecimal(txtTotal.Text);
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_SUBTOTAL = Convert.ToDecimal(txtSubTotal.Text);
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_PORCENTAJEDESCUENTO = Convert.ToDecimal(txtDescuentoPorcTotal.Text);
                    oMOV_CTA_CTE_PROV_FACTURA.TIPM_ID = (int)cmbComprobante.SelectedValue;
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_CONCEPTO = ((TIPO_MOVIMIENTO)cmbComprobante.SelectedItem).TIPM_CONCEPTO;
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_FECHAMOVIMIENTO = dtpFecha.Value;
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_NROFACTURA = txtNroDocumento.Text;
                    oMOV_CTA_CTE_PROV_FACTURA.FOR_ID = (int)cmbFormaPago.SelectedValue;

                    oMOV_CTA_CTE_PROV_FACTURA.CCP_ID = eCTA.CCP_ID;

                    oMOV_CTA_CTE_PROV_FACTURA = cMOVIMIENTO_CTACTE_PROVEEDORES.AltaConRetorno(oMOV_CTA_CTE_PROV_FACTURA);
                    //SI FORMA DE PAGO ES EFECTIVO GENERA RECIBO PARA QUE EL SALDO QUEDE SALDADO
                    if (((FORMA_PAGO)cmbFormaPago.SelectedItem).FOR_DESCRIPCION.Contains("EFECTIVO"))
                    {
                        var oMOV_CTA_CTE_PROV_RECIBO = new MOVIMIENTO_CTACTE_PROVEEDOR();

                        oMOV_CTA_CTE_PROV_RECIBO.MCCP_VALORMOVIMIENTO = Convert.ToDecimal(txtTotal.Text);
                        oMOV_CTA_CTE_PROV_RECIBO.MCCP_SALDOMOVIMIENTO = Convert.ToDecimal(txtTotal.Text);
                        var tipoMov = cTIPO_MOVIMIENTO.ObtenerTipoRecibo();
                        oMOV_CTA_CTE_PROV_RECIBO.TIPM_ID = tipoMov.TIPM_ID;
                        oMOV_CTA_CTE_PROV_RECIBO.MCCP_CONCEPTO = tipoMov.TIPM_CONCEPTO;
                        oMOV_CTA_CTE_PROV_RECIBO.MCCP_FECHAMOVIMIENTO = dtpFecha.Value;

                        oMOV_CTA_CTE_PROV_RECIBO.MCCP_NROCOMPROBANTE = 0; //CERO INDICA FACTURA PAGA EN EFECTIVO

                        //agrego a la cta cte el movimiento
                        var cta = cPROVEEDOR.ObtenerCtaCteProveedor(ePROVEEDOR);
                        oMOV_CTA_CTE_PROV_RECIBO.CCP_ID = cta.CCP_ID;

                        cMOVIMIENTO_CTACTE_PROVEEDORES.Modificacion(oMOV_CTA_CTE_PROV_FACTURA);

                        oMOV_CTA_CTE_PROV_RECIBO = cMOVIMIENTO_CTACTE_PROVEEDORES.AltaConRetorno(oMOV_CTA_CTE_PROV_RECIBO);

                        oMOV_CTA_CTE_PROV_FACTURA.MCCP_NROCOMPROBANTE = oMOV_CTA_CTE_PROV_RECIBO.MCCP_ID;
                        cMOVIMIENTO_CTACTE_PROVEEDORES.Modificacion(oMOV_CTA_CTE_PROV_FACTURA);
                    }

                    //agrego a la cta cte el movimiento
                    //var ctaCte = cPROVEEDOR.ObtenerCtaCteProveedor(ePROVEEDOR);
                    //ctaCte.MOVIMIENTOS_CTACTE_PROVEEDOR.Add(oMOV_CTA_CTE_PROV_FACTURA);

                    //2do TENGO QUE DAR DE ALTA CADA UNA DE LAS LINES DE FACTURA
                    DataTable tblGrilla;
                    tblGrilla = dsDatos.Tables["GrillaFactura"];

                    foreach (DataRow lineaVtaGrilla in tblGrilla.Rows)
                    {
                        LINEA_FACTURA nuevaLinea = new LINEA_FACTURA();

                        nuevaLinea.PRO_ID = Convert.ToInt32(lineaVtaGrilla["PRO_ID"]);
                        nuevaLinea.LIN_CANTIDAD = Convert.ToDecimal(lineaVtaGrilla["CANTIDAD_TOTAL"]);
                        nuevaLinea.LIN_COSTO = Convert.ToDecimal(lineaVtaGrilla["PRECIOCOSTO_SINIVA"]);
                        nuevaLinea.LIN_PORCENTAJEDESCUENTO = Convert.ToInt32(lineaVtaGrilla["PORCENTAJEDESCUENTO"]);
                        nuevaLinea.TIVA_ID = Convert.ToInt32(lineaVtaGrilla["TIVA_ID"]);
                        nuevaLinea.MCCP_ID = oMOV_CTA_CTE_PROV_FACTURA.MCCP_ID;

                        nuevaLinea = cLINEA_FACTURA.AltaConRetorno(nuevaLinea);

                        //doy de alta el producto temporal para actualizar el stock
                        var tempStock = new TEMPORAL_STOCK
                            {
                                PRO_CANTIDAD = Convert.ToDecimal(lineaVtaGrilla["CANTIDAD_TOTAL"]),
                                PRO_ID = nuevaLinea.PRO_ID,
                                TEMP_FECHA = DateTime.Now
                            };

                        cTEMPORAL.AltaStock(tempStock);

                        //doy de alta el producto temporal para actualizar el precio si EL COSTO CAMBIA o IVA CAMBIA
                        if (nuevaLinea.PRODUCTO.PRO_COSTO != Convert.ToDecimal(lineaVtaGrilla["PRECIOCOSTO_SINIVA"])
                                || nuevaLinea.TIVA_ID != Convert.ToInt32(lineaVtaGrilla["TIVA_ID"]))
                        {
                            //busca producto para obtener la ganancia
                            PRODUCTO oPRODUCTO = cPRODUCTO.ObtenerPorID(Convert.ToInt32(lineaVtaGrilla["PRO_ID"]));
                            TEMPORAL_PRECIO productoEnTemporal = cTEMPORAL.ObtenerPorIDProducto((int)nuevaLinea.PRO_ID);

                            //Calculo de precio y ganancia
                            var impuesto = Convert.ToDecimal(lineaVtaGrilla["PORCENTAJEIVA"]);
                            var costo = Convert.ToDecimal(lineaVtaGrilla["PRECIOCOSTO_SINIVA"]);
                            var precioVta = Convert.ToDecimal(lineaVtaGrilla["PRECIO_VENTA"]);
                            var gananciaReal = Convert.ToDecimal(lineaVtaGrilla["PRO_MARGENGANANCIAREAL"]);

                            var gananciaPromo = Convert.ToDecimal(oPRODUCTO.PRO_MARGENPROMO);
                            var precioVtaPromo = cMetodosComunes.PrecioVentaGenerico(impuesto, gananciaPromo, costo, ePARAMETRO);
                            var margenGananciaPromo = cMetodosComunes.PorcentajeGananciaGenerico(impuesto, precioVta, costo);

                            if (productoEnTemporal != null)
                            {
                                var dr = MostrarMensajePreguntaSI_NO("Existe un registro para actualizar en Actualizacion Precios, \n Precio de Costo = " + productoEnTemporal.PRO_COSTO + "\n Margen de Ganancia: " + productoEnTemporal.PRO_MARGENGANANCIAREAL + "\n Precio Venta: " + productoEnTemporal.PRO_PRECIOVTA);
                                if (dr)
                                {
                                    productoEnTemporal.PRO_COSTO = costo;
                                    productoEnTemporal.PRO_PRECIOVTA = precioVta;
                                    productoEnTemporal.PRO_MARGENGANANCIAREAL = margenGananciaPromo;
                                    productoEnTemporal.PRO_PRECIOVTAPROMO = precioVtaPromo;
                                    productoEnTemporal.PRO_MARGENGANANCIAPROMO = margenGananciaPromo;
                                    productoEnTemporal.TIVA_ID = Convert.ToInt32(lineaVtaGrilla["TIVA_ID"]);
                                    productoEnTemporal.TEMP_FECHA = DateTime.Now;

                                    cTEMPORAL.ModificacionPrecio(productoEnTemporal);
                                }
                            }

                            else
                            {
                                var tempPrecio = new TEMPORAL_PRECIO
                                {
                                    PRO_COSTO = costo,
                                    PRO_PRECIOVTA = precioVta,
                                    PRO_MARGENGANANCIAREAL = margenGananciaPromo,
                                    PRO_PRECIOVTAPROMO = precioVtaPromo,
                                    PRO_MARGENGANANCIAPROMO = margenGananciaPromo,
                                    PRO_ID = nuevaLinea.PRO_ID,
                                    TIVA_ID = nuevaLinea.TIVA_ID,
                                    TEMP_FECHA = DateTime.Now
                                };

                                cTEMPORAL.AltaPrecio(tempPrecio);
                            }
                        }
                    }

                    //3to ACTUALIZAR EL SALDO EN LA CTA CTE DEL PROVEEDOR
                    switch (((TIPO_MOVIMIENTO)cmbComprobante.SelectedItem).TIPM_CONCEPTO)
                    {
                        case "DEBE": eCTA.CCP_SALDO += oMOV_CTA_CTE_PROV_FACTURA.MCCP_VALORMOVIMIENTO; break;
                        case "HABER": eCTA.CCP_SALDO -= oMOV_CTA_CTE_PROV_FACTURA.MCCP_VALORMOVIMIENTO; break;
                    }

                    cCTACTE_PROVEEDOR.Modificacion(eCTA);
                    cMOVIMIENTO_CTACTE_PROVEEDORES.Modificacion(oMOV_CTA_CTE_PROV_FACTURA);
                    //4ro ALTA EL SEGUIMIENTO DE PRODUCTOS
                    foreach (var item in oMOV_CTA_CTE_PROV_FACTURA.LINEAS_FACTURA)
                    {
                        var oSEG_PROD = new SEGUIMIENTO_PRODUCTO
                            {
                                PRO_ID = item.PRODUCTO.PRO_ID,
                                PROV_ID = ePROVEEDOR.PROV_ID,
                                SEG_FECHA = dtpFecha.Value,
                                SEG_PRECIOCOSTO = item.LIN_COSTO,
                                SEG_MARGENGANANCIA = item.PRODUCTO.PRO_MARGENGANANCIAREAL
                            };

                        cSEGUIMIENTOS_PRODUCTOS.Alta(oSEG_PROD);
                    }

                    transaccion.Complete();
                }
                MostrarMensajeInformativo("La Factura se realizó con éxito");
                this.DialogResult = DialogResult.OK;
            }
            catch (Exception ex)
            {
                ProcesarExcepcion(ex);
                this.DialogResult = DialogResult.Cancel;
            }
        }
 /// <summary>
 /// Crear un nuevo objeto TEMPORAL_PRECIO.
 /// </summary>
 /// <param name="tEMP_PRECIOID">Valor inicial de la propiedad TEMP_PRECIOID.</param>
 /// <param name="pRO_ID">Valor inicial de la propiedad PRO_ID.</param>
 /// <param name="pRO_MARGENGANACIAESTIMADA">Valor inicial de la propiedad PRO_MARGENGANACIAESTIMADA.</param>
 public static TEMPORAL_PRECIO CreateTEMPORAL_PRECIO(global::System.Int32 tEMP_PRECIOID, global::System.Int32 pRO_ID, global::System.Decimal pRO_MARGENGANACIAESTIMADA)
 {
     TEMPORAL_PRECIO tEMPORAL_PRECIO = new TEMPORAL_PRECIO();
     tEMPORAL_PRECIO.TEMP_PRECIOID = tEMP_PRECIOID;
     tEMPORAL_PRECIO.PRO_ID = pRO_ID;
     tEMPORAL_PRECIO.PRO_MARGENGANACIAESTIMADA = pRO_MARGENGANACIAESTIMADA;
     return tEMPORAL_PRECIO;
 }
 /// <summary>
 /// Método desusado para agregar un nuevo objeto al EntitySet TEMPORAL_PRECIO. Considere la posibilidad de usar el método .Add de la propiedad ObjectSet&lt;T&gt; asociada.
 /// </summary>
 public void AddToTEMPORAL_PRECIO(TEMPORAL_PRECIO tEMPORAL_PRECIO)
 {
     base.AddObject("TEMPORAL_PRECIO", tEMPORAL_PRECIO);
 }
        private void oK_CANCEL1_Click_OK(object sender, EventArgs e)
        {
            try
            {
                //*********************IMAGEN PROGRESS BAR**********************
                picProgresBar.Visible = true;
                oK_CANCEL1.Visible = false;
                //*******************************************************

                var ePARAMETRO = cPARAMETROS.ObtenerTodos();

                using (TransactionScope TRANSACCION = new TransactionScope())
                {

                    #region METODO DE CALCULO VIEJO

                    //#region //radCOSTO

                    //if (radCosto.Checked == true)
                    //{
                    //    #region //radCOSTO y $

                    //    if (radPesos.Checked == true)
                    //    {
                    //        foreach (var item in ListProductoImprimir)
                    //        {
                    //            var TEMP = cTEMPORALS.ObtenerPorIDProducto(item.PRO_ID);
                    //            var porcentajeImpuesto = item.TIPO_IVA.TIVA_PORCENTAJE / 100;
                    //            if (TEMP == null)
                    //            {
                    //                //alta temporal precio
                    //                TEMPORAL_PRECIO eTEMPORAL = new TEMPORAL_PRECIO();
                    //                eTEMPORAL.PRO_COSTO = item.PRO_COSTO + Convert.ToDecimal(txtPesos.Text);
                    //                eTEMPORAL.PRO_ID = item.PRO_ID;

                    //                var precioVta = item.PRO_PRECIOVTA + Convert.ToDecimal(txtPesos.Text);

                    //                decimal precioFinal = 0;
                    //                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                    //                {
                    //                    //redondeando
                    //                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                    //                    }
                    //                    else
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                    //                    }
                    //                }
                    //                //sin redondeo
                    //                else
                    //                {
                    //                    precioFinal = (decimal)precioVta;
                    //                }

                    //                //tengo que recalcular el margen de ganancia si se redondio
                    //                var precioBruto = precioFinal / eTEMPORAL.PRO_COSTO;

                    //                eTEMPORAL.PRO_MARGENGANACIA = (precioBruto - 1 - porcentajeImpuesto) * 100;

                    //                eTEMPORAL.PRO_PRECIOVTA = precioFinal;

                    //                cTEMPORALS.Alta(eTEMPORAL);

                    //            }
                    //            else
                    //            {
                    //                //actualiza en temporal precio
                    //                TEMP.PRO_COSTO = item.PRO_COSTO + Convert.ToDecimal(txtPesos.Text);
                    //                TEMP.PRO_ID = item.PRO_ID;

                    //                var precioVta = item.PRO_PRECIOVTA + Convert.ToDecimal(txtPesos.Text);

                    //                decimal precioFinal = 0;
                    //                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                    //                {
                    //                    //redondeando
                    //                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                    //                    }
                    //                    else
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                    //                    }
                    //                }
                    //                //sin redondeo
                    //                else
                    //                {
                    //                    precioFinal = (decimal)precioVta;
                    //                }

                    //                //tengo que recalcular el margen de ganancia si se redondio
                    //                var precioBruto = precioFinal / TEMP.PRO_COSTO;

                    //                TEMP.PRO_MARGENGANACIA = (precioBruto - 1 - porcentajeImpuesto) * 100;

                    //                TEMP.PRO_PRECIOVTA = precioFinal;

                    //                cTEMPORALS.Modificacion();
                    //            }
                    //        }

                    //    }

                    //    #endregion

                    //    #region //radCOSTO y %

                    //    else
                    //    {
                    //        foreach (var item in ListProductoImprimir)
                    //        {
                    //            var TEMP = cTEMPORALS.ObtenerPorIDProducto(item.PRO_ID);
                    //            var porcentajeImpuesto = item.TIPO_IVA.TIVA_PORCENTAJE / 100;
                    //            var porcentajeIngresado = (Convert.ToDecimal(numPorcentaje.Text) / 100);
                    //            if (TEMP == null)
                    //            {
                    //                //alta temporal precio
                    //                TEMPORAL_PRECIO eTEMPORAL = new TEMPORAL_PRECIO();
                    //                //pesificar el porcentaje ingresado del costo
                    //                var porcentajeCostoPesificado = item.PRO_COSTO * porcentajeIngresado;
                    //                eTEMPORAL.PRO_COSTO = item.PRO_COSTO + porcentajeCostoPesificado;
                    //                eTEMPORAL.PRO_ID = item.PRO_ID;

                    //                var precioVta = item.PRO_PRECIOVTA + porcentajeCostoPesificado;

                    //                decimal precioFinal = 0;
                    //                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                    //                {
                    //                    //redondeando
                    //                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                    //                    }
                    //                    else
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                    //                    }
                    //                }
                    //                //sin redondeo
                    //                else
                    //                {
                    //                    precioFinal = (decimal)precioVta;
                    //                }

                    //                //tengo que recalcular el margen de ganancia si se redondio
                    //                var precioBruto = precioFinal / eTEMPORAL.PRO_COSTO;

                    //                eTEMPORAL.PRO_MARGENGANACIA = (precioBruto - 1 - porcentajeImpuesto) * 100;

                    //                eTEMPORAL.PRO_PRECIOVTA = precioFinal;

                    //                cTEMPORALS.Alta(eTEMPORAL);

                    //            }
                    //            else
                    //            {
                    //                //pesificar el porcentaje ingresado del costo
                    //                var porcentajeCostoPesificado = item.PRO_COSTO * porcentajeIngresado;
                    //                TEMP.PRO_COSTO = item.PRO_COSTO + porcentajeCostoPesificado;
                    //                TEMP.PRO_ID = item.PRO_ID;

                    //                var precioVta = item.PRO_PRECIOVTA + porcentajeCostoPesificado;

                    //                decimal precioFinal = 0;
                    //                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                    //                {
                    //                    //redondeando
                    //                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                    //                    }
                    //                    else
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                    //                    }
                    //                }
                    //                //sin redondeo
                    //                else
                    //                {
                    //                    precioFinal = (decimal)precioVta;
                    //                }

                    //                //tengo que recalcular el margen de ganancia si se redondio
                    //                var precioBruto = precioFinal / TEMP.PRO_COSTO;

                    //                TEMP.PRO_MARGENGANACIA = (precioBruto - 1 - porcentajeImpuesto) * 100;

                    //                TEMP.PRO_PRECIOVTA = precioFinal;

                    //                cTEMPORALS.Modificacion();
                    //            }
                    //        }
                    //    }

                    //    #endregion
                    //}

                    //#endregion

                    //#region //radGanancia

                    //if (radGanancia.Checked == true)
                    //{
                    //    #region //radGanancia y $

                    //    if (radPesos.Checked == true)
                    //    {
                    //        foreach (var item in ListProductoImprimir)
                    //        {
                    //            var TEMP = cTEMPORALS.ObtenerPorIDProducto(item.PRO_ID);
                    //            var porcentajeIngresado = (numPorcentaje.Value / 100);
                    //            var porcentajeImpuesto = item.TIPO_IVA.TIVA_PORCENTAJE / 100;
                    //            if (TEMP == null)
                    //            {
                    //                //alta temporal precio
                    //                TEMPORAL_PRECIO eTEMPORAL = new TEMPORAL_PRECIO();
                    //                eTEMPORAL.PRO_COSTO = item.PRO_COSTO;
                    //                eTEMPORAL.PRO_ID = item.PRO_ID;
                    //                //pesifico el impuesto
                    //                var Imp_pesos = porcentajeImpuesto * item.PRO_COSTO;
                    //                //pesifico el margen de ganancia que lo tengo en %
                    //                var MG_pesos = item.PRO_PRECIOVTA - item.PRO_COSTO - Imp_pesos;
                    //                var New_MG_pesos = MG_pesos + Convert.ToDecimal(txtPesos.Text);
                    //                var precioVta = item.PRO_COSTO + New_MG_pesos + Imp_pesos;

                    //                decimal precioFinal = 0;
                    //                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                    //                {
                    //                    //redondeando
                    //                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                    //                    }
                    //                    else
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                    //                    }
                    //                }
                    //                //sin redondeo
                    //                else
                    //                {
                    //                    precioFinal = (decimal)precioVta;
                    //                }
                    //                var precioBruto = precioFinal / item.PRO_COSTO;

                    //                eTEMPORAL.PRO_MARGENGANACIA = (precioBruto - 1 - porcentajeImpuesto) * 100;

                    //                eTEMPORAL.PRO_PRECIOVTA = precioFinal;

                    //                cTEMPORALS.Alta(eTEMPORAL);
                    //            }
                    //            else
                    //            {
                    //                //actualiza en temporal precio

                    //                TEMP.PRO_COSTO = item.PRO_COSTO;
                    //                TEMP.PRO_ID = item.PRO_ID;
                    //                //pesifico el impuesto
                    //                var Imp_pesos = porcentajeImpuesto * item.PRO_COSTO;
                    //                //pesifico el margen de ganancia que lo tengo en %
                    //                var MG_pesos = item.PRO_PRECIOVTA - item.PRO_COSTO - Imp_pesos;
                    //                var New_MG_pesos = MG_pesos + Convert.ToDecimal(txtPesos.Text);
                    //                var precioVta = item.PRO_COSTO + New_MG_pesos + Imp_pesos;

                    //                decimal precioFinal = 0;
                    //                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                    //                {
                    //                    //redondeando
                    //                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                    //                    }
                    //                    else
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                    //                    }
                    //                }
                    //                //sin redondeo
                    //                else
                    //                {
                    //                    precioFinal = (decimal)precioVta;
                    //                }
                    //                var precioBruto = precioFinal / item.PRO_COSTO;

                    //                TEMP.PRO_MARGENGANACIA = (precioBruto - 1 - porcentajeImpuesto) * 100;

                    //                TEMP.PRO_PRECIOVTA = precioFinal;

                    //                cTEMPORALS.Modificacion();
                    //            }
                    //        }
                    //    }

                    //    #endregion

                    //    #region //radGanancia y %

                    //    else
                    //    {
                    //        foreach (var item in ListProductoImprimir)
                    //        {
                    //            var TEMP = cTEMPORALS.ObtenerPorIDProducto(item.PRO_ID);
                    //            var porcentajeIngresado = (numPorcentaje.Value / 100);
                    //            var porcentajeImpuesto = item.TIPO_IVA.TIVA_PORCENTAJE / 100;
                    //            if (TEMP == null)
                    //            {
                    //                //alta temporal precio
                    //                TEMPORAL_PRECIO eTEMPORAL = new TEMPORAL_PRECIO();
                    //                eTEMPORAL.PRO_COSTO = item.PRO_COSTO;
                    //                eTEMPORAL.PRO_ID = item.PRO_ID;

                    //                //calculo margen de ganancia
                    //                var newMG = porcentajeIngresado + (item.PRO_MARGENGANACIA / 100);
                    //                var Imp_pesos = porcentajeImpuesto * item.PRO_COSTO;

                    //                eTEMPORAL.PRO_MARGENGANACIA = newMG * 100;
                    //                var newMG_pesos = newMG * item.PRO_COSTO;

                    //                var precioVta = Imp_pesos + item.PRO_COSTO + newMG_pesos;

                    //                decimal precioFinal = 0;
                    //                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                    //                {
                    //                    //redondeando
                    //                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                    //                    }
                    //                    else
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                    //                    }
                    //                }
                    //                //sin redondeo
                    //                else
                    //                {
                    //                    precioFinal = (decimal)precioVta;
                    //                }

                    //                eTEMPORAL.PRO_PRECIOVTA = precioFinal;

                    //                cTEMPORALS.Alta(eTEMPORAL);
                    //            }
                    //            else
                    //            {
                    //                //actualiza en temporal precio
                    //                TEMP.PRO_COSTO = item.PRO_COSTO; ;
                    //                TEMP.PRO_ID = item.PRO_ID;

                    //                //calculo margen de ganancia
                    //                var newMG = porcentajeIngresado + (item.PRO_MARGENGANACIA / 100);
                    //                var Imp_pesos = porcentajeImpuesto * item.PRO_COSTO;

                    //                TEMP.PRO_MARGENGANACIA = newMG * 100;
                    //                var newMG_pesos = newMG * item.PRO_COSTO;

                    //                var precioVta = Imp_pesos + item.PRO_COSTO + newMG_pesos;

                    //                decimal precioFinal = 0;
                    //                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                    //                {
                    //                    //redondeando
                    //                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                    //                    }
                    //                    else
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                    //                    }
                    //                }
                    //                //sin redondeo
                    //                else
                    //                {
                    //                    precioFinal = (decimal)precioVta;
                    //                }

                    //                TEMP.PRO_PRECIOVTA = precioFinal;

                    //                cTEMPORALS.Modificacion();
                    //            }
                    //        }
                    //    }

                    //    #endregion
                    //}
                    //#endregion

                    //#region //radVta

                    //if (radVta.Checked == true)
                    //{
                    //    #region //radVta y $

                    //    if (radPesos.Checked == true)
                    //    {
                    //        foreach (var item in ListProductoImprimir)
                    //        {
                    //            var TEMP = cTEMPORALS.ObtenerPorIDProducto(item.PRO_ID);
                    //            var porcentajeIngresado = (numPorcentaje.Value / 100);
                    //            var porcentajeImpuesto = item.TIPO_IVA.TIVA_PORCENTAJE / 100;
                    //            if (TEMP == null)
                    //            {
                    //                //alta temporal precio
                    //                TEMPORAL_PRECIO eTEMPORAL = new TEMPORAL_PRECIO();
                    //                eTEMPORAL.PRO_COSTO = item.PRO_COSTO;
                    //                eTEMPORAL.PRO_ID = item.PRO_ID;

                    //                var precioVta = item.PRO_PRECIOVTA + Convert.ToDecimal(txtPesos.Text);

                    //                decimal precioFinal = 0;
                    //                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                    //                {
                    //                    //redondeando
                    //                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                    //                    }
                    //                    else
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                    //                    }
                    //                }
                    //                //sin redondeo
                    //                else
                    //                {
                    //                    precioFinal = (decimal)precioVta;
                    //                }
                    //                var precioBruto = precioFinal / item.PRO_COSTO;

                    //                eTEMPORAL.PRO_MARGENGANACIA = (precioBruto - 1 - porcentajeImpuesto) * 100;

                    //                eTEMPORAL.PRO_PRECIOVTA = precioFinal;

                    //                cTEMPORALS.Alta(eTEMPORAL);
                    //            }
                    //            else
                    //            {
                    //                //actualiza en temporal precio

                    //                TEMP.PRO_COSTO = item.PRO_COSTO;
                    //                TEMP.PRO_ID = item.PRO_ID;

                    //                var precioVta = TEMP.PRO_PRECIOVTA + Convert.ToDecimal(txtPesos.Text);

                    //                decimal precioFinal = 0;
                    //                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                    //                {
                    //                    //redondeando
                    //                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                    //                    }
                    //                    else
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                    //                    }
                    //                }
                    //                //sin redondeo
                    //                else
                    //                {
                    //                    precioFinal = (decimal)precioVta;
                    //                }
                    //                var precioBruto = precioFinal / item.PRO_COSTO;

                    //                TEMP.PRO_MARGENGANACIA = (precioBruto - 1 - porcentajeImpuesto) * 100;

                    //                TEMP.PRO_PRECIOVTA = precioFinal;

                    //                cTEMPORALS.Modificacion();
                    //            }
                    //        }
                    //    }

                    //    #endregion

                    //    #region //radVta y %

                    //    else
                    //    {
                    //        foreach (var item in ListProductoImprimir)
                    //        {
                    //            var TEMP = cTEMPORALS.ObtenerPorIDProducto(item.PRO_ID);
                    //            var porcentajeIngresado = (numPorcentaje.Value / 100);
                    //            var porcentajeImpuesto = item.TIPO_IVA.TIVA_PORCENTAJE / 100;
                    //            if (TEMP == null)
                    //            {
                    //                //alta temporal precio
                    //                TEMPORAL_PRECIO eTEMPORAL = new TEMPORAL_PRECIO();
                    //                eTEMPORAL.PRO_COSTO = item.PRO_COSTO;
                    //                eTEMPORAL.PRO_ID = item.PRO_ID;

                    //                //pesifico el porcentaje de vta
                    //                var porcentajeVtaPesificado = item.PRO_PRECIOVTA * porcentajeIngresado;

                    //                var precioVta = porcentajeVtaPesificado + item.PRO_PRECIOVTA;

                    //                decimal precioFinal = 0;
                    //                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                    //                {
                    //                    //redondeando
                    //                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                    //                    }
                    //                    else
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                    //                    }
                    //                }
                    //                //sin redondeo
                    //                else
                    //                {
                    //                    precioFinal = (decimal)precioVta;
                    //                }

                    //                var precioBruto = precioFinal / item.PRO_COSTO;

                    //                eTEMPORAL.PRO_MARGENGANACIA = (precioBruto - 1 - porcentajeImpuesto) * 100;

                    //                eTEMPORAL.PRO_PRECIOVTA = precioFinal;

                    //                cTEMPORALS.Alta(eTEMPORAL);
                    //            }
                    //            else
                    //            {
                    //                //actualiza en temporal precio
                    //                TEMP.PRO_COSTO = item.PRO_COSTO;
                    //                TEMP.PRO_ID = item.PRO_ID;

                    //                //calculo margen de ganancia
                    //                var newMG = porcentajeIngresado + (item.PRO_MARGENGANACIA / 100);
                    //                var Imp_pesos = porcentajeImpuesto * item.PRO_COSTO;

                    //                TEMP.PRO_MARGENGANACIA = newMG * 100;
                    //                var newMG_pesos = newMG * item.PRO_COSTO;

                    //                var precioVta = Imp_pesos + item.PRO_COSTO + newMG_pesos;

                    //                decimal precioFinal = 0;
                    //                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                    //                {
                    //                    //redondeando
                    //                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                    //                    }
                    //                    else
                    //                    {
                    //                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                    //                    }
                    //                }
                    //                //sin redondeo
                    //                else
                    //                {
                    //                    precioFinal = (decimal)precioVta;
                    //                }

                    //                var precioBruto = precioFinal / item.PRO_COSTO;

                    //                TEMP.PRO_MARGENGANACIA = (precioBruto - 1 - porcentajeImpuesto) * 100;

                    //                TEMP.PRO_PRECIOVTA = precioFinal;

                    //                cTEMPORALS.Modificacion();
                    //            }
                    //        }
                    //    }

                    //    #endregion
                    //}

                    //#endregion

                    #endregion

                    #region METODO DE CALCULO NUEVO

                    decimal PorcImpuesto = 0;
                    decimal PorcGanancia = 0;
                    decimal PrecioCosto = 0;
                    decimal precioVta = 0;

                    #region //radCOSTO

                    if (radCosto.Checked == true)
                    {
                        #region //radCOSTO y $

                        if (radPesos.Checked == true)
                        {
                            foreach (var item in ListProductoImprimir)
                            {
                                PorcImpuesto = 0;
                                PorcGanancia = 0;
                                PrecioCosto = 0;
                                precioVta = 0;

                                var nuevoBandera = false;
                                TEMPORAL_PRECIO eTEMPORAL = null;
                                var TEMP = cTEMPORALS.ObtenerPorIDProducto(item.PRO_ID);

                                if (TEMP == null)
                                {
                                    eTEMPORAL = new TEMPORAL_PRECIO();
                                    nuevoBandera = true;
                                }
                                else
                                {
                                    eTEMPORAL = TEMP;
                                }

                                PorcImpuesto = Convert.ToDecimal(item.TIPO_IVA.TIVA_PORCENTAJE) / 100;

                                //TEMPORAL_PRECIO eTEMPORAL = new TEMPORAL_PRECIO();
                                PrecioCosto = Convert.ToDecimal(item.PRO_COSTO) + Convert.ToDecimal(txtPesos.Text);
                                eTEMPORAL.PRO_COSTO = PrecioCosto;
                                eTEMPORAL.PRO_ID = item.PRO_ID;

                                PorcGanancia = (Convert.ToDecimal(item.PRO_MARGENGANACIAESTIMADA) / 100) + 1;
                                precioVta = (PrecioCosto * (PorcImpuesto + 1)) * PorcGanancia;

                                precioVta = decimal.Round(precioVta, 3);

                                decimal precioFinal = 0;
                                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                                {
                                    //redondeando
                                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                                    {
                                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                                    }
                                    else
                                    {
                                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                                    }
                                }
                                //sin redondeo
                                else
                                {
                                    precioFinal = (decimal)precioVta;
                                }

                                //tengo que recalcular el margen de ganancia si se redondio
                                var PrecioBruto = Convert.ToDecimal(precioFinal / eTEMPORAL.PRO_COSTO);
                                eTEMPORAL.PRO_MARGENGANANCIAREAL = Convert.ToDecimal(decimal.Round(((PrecioBruto / (PorcImpuesto + 1)) - 1) * 100, 3));
                                eTEMPORAL.PRO_MARGENGANACIAESTIMADA = Convert.ToDecimal(numPorcentaje.Value);
                                eTEMPORAL.PRO_PRECIOVTA = precioFinal;
                                eTEMPORAL.TEMP_FECHA = DateTime.Now;

                                if (nuevoBandera)
                                {
                                    //alta temporal precio
                                    cTEMPORALS.Alta(eTEMPORAL);
                                }
                                else
                                {
                                    //actualiza en temporal precio
                                    cTEMPORALS.ModificacionPrecio(TEMP);
                                }
                            }
                        }

                        #endregion

                        #region //radCOSTO y %

                        else
                        {
                            foreach (var item in ListProductoImprimir)
                            {
                                PorcImpuesto = 0;
                                PorcGanancia = 0;
                                PrecioCosto = 0;
                                precioVta = 0;

                                var nuevoBandera = false;
                                TEMPORAL_PRECIO eTEMPORAL = null;
                                var TEMP = cTEMPORALS.ObtenerPorIDProducto(item.PRO_ID);

                                if (TEMP == null)
                                {
                                    eTEMPORAL = new TEMPORAL_PRECIO();
                                    nuevoBandera = true;
                                }
                                else
                                {
                                    eTEMPORAL = TEMP;
                                }

                                PorcImpuesto = Convert.ToDecimal(item.TIPO_IVA.TIVA_PORCENTAJE) / 100;
                                var porcentajeIngresado = Convert.ToDecimal(numPorcentaje.Text) / 100;

                                //pesificar el porcentaje ingresado del costo
                                PrecioCosto = Convert.ToDecimal(item.PRO_COSTO) * (porcentajeIngresado + 1);
                                eTEMPORAL.PRO_COSTO = PrecioCosto;
                                eTEMPORAL.PRO_ID = item.PRO_ID;

                                PorcGanancia = (Convert.ToDecimal(item.PRO_MARGENGANACIAESTIMADA) / 100) + 1;
                                precioVta = (PrecioCosto * (PorcImpuesto + 1)) * PorcGanancia;

                                precioVta = decimal.Round(precioVta, 3);

                                decimal precioFinal = 0;
                                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                                {
                                    //redondeando
                                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                                    {
                                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                                    }
                                    else
                                    {
                                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                                    }
                                }
                                //sin redondeo
                                else
                                {
                                    precioFinal = (decimal)precioVta;
                                }

                                //tengo que recalcular el margen de ganancia si se redondio
                                var PrecioBruto = Convert.ToDecimal(precioFinal / eTEMPORAL.PRO_COSTO);
                                eTEMPORAL.PRO_MARGENGANANCIAREAL = Convert.ToDecimal(decimal.Round(((PrecioBruto / (PorcImpuesto + 1)) - 1) * 100, 3));
                                eTEMPORAL.PRO_MARGENGANACIAESTIMADA = Convert.ToDecimal(numPorcentaje.Value);
                                eTEMPORAL.PRO_PRECIOVTA = precioFinal;
                                eTEMPORAL.TEMP_FECHA = DateTime.Now;

                                if (nuevoBandera)
                                {
                                    //alta temporal precio
                                    cTEMPORALS.Alta(eTEMPORAL);
                                }
                                else
                                {
                                    //actualiza en temporal precio
                                    cTEMPORALS.ModificacionPrecio(TEMP);
                                }
                            }
                        }

                        #endregion
                    }

                    #endregion

                    #region //radGanancia

                    if (radGananciaEst.Checked == true)
                    {
                        #region //radGanancia y $

                        if (radPesos.Checked == true)
                        {
                            foreach (var item in ListProductoImprimir)
                            {
                                PorcImpuesto = 0;
                                PorcGanancia = 0;
                                PrecioCosto = 0;
                                precioVta = 0;

                                var nuevoBandera = false;
                                TEMPORAL_PRECIO eTEMPORAL = null;
                                var TEMP = cTEMPORALS.ObtenerPorIDProducto(item.PRO_ID);

                                if (TEMP == null)
                                {
                                    eTEMPORAL = new TEMPORAL_PRECIO();
                                    nuevoBandera = true;
                                }
                                else
                                {
                                    eTEMPORAL = TEMP;
                                }

                                PorcImpuesto = Convert.ToDecimal(item.TIPO_IVA.TIVA_PORCENTAJE) / 100;

                                PrecioCosto = Convert.ToDecimal(item.PRO_COSTO);
                                eTEMPORAL.PRO_COSTO = PrecioCosto;
                                eTEMPORAL.PRO_ID = item.PRO_ID;

                                var valorGanancia = item.PRO_COSTO * (PorcImpuesto + 1) * ((decimal)(item.PRO_MARGENGANACIAESTIMADA) / 100);
                                var nuevoValorGanancia = valorGanancia + Convert.ToDecimal(txtPesos.Text);
                                var nuevoPorcGanancia = (nuevoValorGanancia * Convert.ToDecimal(item.PRO_MARGENGANACIAESTIMADA)) / valorGanancia;
                                PorcGanancia = (Convert.ToDecimal(nuevoPorcGanancia) / 100) + 1;
                                precioVta = (PrecioCosto * (PorcImpuesto + 1)) * PorcGanancia;

                                precioVta = decimal.Round(precioVta, 3);

                                decimal precioFinal = 0;
                                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                                {
                                    //redondeando
                                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                                    {
                                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                                    }
                                    else
                                    {
                                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                                    }
                                }
                                //sin redondeo
                                else
                                {
                                    precioFinal = (decimal)precioVta;
                                }

                                //tengo que recalcular el margen de ganancia si se redondio
                                var PrecioBruto = Convert.ToDecimal(precioFinal / eTEMPORAL.PRO_COSTO);
                                eTEMPORAL.PRO_MARGENGANANCIAREAL = Convert.ToDecimal(decimal.Round(((PrecioBruto / (PorcImpuesto + 1)) - 1) * 100, 3));
                                eTEMPORAL.PRO_MARGENGANACIAESTIMADA = Convert.ToDecimal(numPorcentaje.Value);
                                eTEMPORAL.PRO_PRECIOVTA = precioFinal;
                                eTEMPORAL.TEMP_FECHA = DateTime.Now;

                                if (nuevoBandera)
                                {
                                    //alta temporal precio
                                    cTEMPORALS.Alta(eTEMPORAL);
                                }
                                else
                                {
                                    //actualiza en temporal precio
                                    cTEMPORALS.ModificacionPrecio(TEMP);
                                }
                            }
                        }

                        #endregion

                        #region //radGanancia y %

                        else
                        {
                            foreach (var item in ListProductoImprimir)
                            {
                                PorcImpuesto = 0;
                                PorcGanancia = 0;
                                PrecioCosto = 0;
                                precioVta = 0;

                                var nuevoBandera = false;
                                TEMPORAL_PRECIO eTEMPORAL = null;
                                var TEMP = cTEMPORALS.ObtenerPorIDProducto(item.PRO_ID);

                                if (TEMP == null)
                                {
                                    eTEMPORAL = new TEMPORAL_PRECIO();
                                    nuevoBandera = true;
                                }
                                else
                                {
                                    eTEMPORAL = TEMP;
                                }

                                PorcImpuesto = Convert.ToDecimal(item.TIPO_IVA.TIVA_PORCENTAJE) / 100;

                                PrecioCosto = Convert.ToDecimal(item.PRO_COSTO);
                                eTEMPORAL.PRO_COSTO = PrecioCosto;
                                eTEMPORAL.PRO_ID = item.PRO_ID;

                                PorcGanancia = (Convert.ToDecimal(item.PRO_MARGENGANACIAESTIMADA) * ((numPorcentaje.Value / 100) + 1)) / 100;
                                precioVta = (PrecioCosto * (PorcImpuesto + 1)) * (PorcGanancia + 1);

                                precioVta = decimal.Round(precioVta, 3);

                                decimal precioFinal = 0;
                                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                                {
                                    //redondeando
                                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                                    {
                                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                                    }
                                    else
                                    {
                                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                                    }
                                }
                                //sin redondeo
                                else
                                {
                                    precioFinal = (decimal)precioVta;
                                }

                                //tengo que recalcular el margen de ganancia si se redondio
                                var PrecioBruto = Convert.ToDecimal(precioFinal / eTEMPORAL.PRO_COSTO);
                                eTEMPORAL.PRO_MARGENGANANCIAREAL = Convert.ToDecimal(decimal.Round(((PrecioBruto / (PorcImpuesto + 1)) - 1) * 100, 3));
                                eTEMPORAL.PRO_MARGENGANACIAESTIMADA = Convert.ToDecimal(numPorcentaje.Value);
                                eTEMPORAL.PRO_PRECIOVTA = precioFinal;
                                eTEMPORAL.TEMP_FECHA = DateTime.Now;

                                if (nuevoBandera)
                                {
                                    //alta temporal precio
                                    cTEMPORALS.Alta(eTEMPORAL);
                                }
                                else
                                {
                                    //actualiza en temporal precio
                                    cTEMPORALS.ModificacionPrecio(TEMP);
                                }
                            }
                        }

                        #endregion
                    }
                    #endregion

                    #region //radVta

                    if (radVta.Checked == true)
                    {
                        #region //radVta y $

                        if (radPesos.Checked == true)
                        {
                            foreach (var item in ListProductoImprimir)
                            {
                                PorcImpuesto = 0;
                                PorcGanancia = 0;
                                PrecioCosto = 0;
                                precioVta = 0;

                                var nuevoBandera = false;
                                TEMPORAL_PRECIO eTEMPORAL = null;
                                var TEMP = cTEMPORALS.ObtenerPorIDProducto(item.PRO_ID);

                                if (TEMP == null)
                                {
                                    eTEMPORAL = new TEMPORAL_PRECIO();
                                    nuevoBandera = true;
                                }
                                else
                                {
                                    eTEMPORAL = TEMP;
                                }

                                PorcImpuesto = Convert.ToDecimal(item.TIPO_IVA.TIVA_PORCENTAJE) / 100;

                                PrecioCosto = Convert.ToDecimal(item.PRO_COSTO);
                                eTEMPORAL.PRO_COSTO = PrecioCosto;
                                eTEMPORAL.PRO_ID = item.PRO_ID;
                                precioVta = Convert.ToDecimal(item.PRO_PRECIOVTA) + Convert.ToDecimal(txtPesos.Text);

                                precioVta = decimal.Round(precioVta, 3);

                                decimal precioFinal = 0;
                                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                                {
                                    //redondeando
                                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                                    {
                                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                                    }
                                    else
                                    {
                                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                                    }
                                }
                                //sin redondeo
                                else
                                {
                                    precioFinal = (decimal)precioVta;
                                }

                                //tengo que recalcular el margen de ganancia si se redondio
                                var PrecioBruto = Convert.ToDecimal(precioFinal / eTEMPORAL.PRO_COSTO);
                                eTEMPORAL.PRO_MARGENGANANCIAREAL = Convert.ToDecimal(decimal.Round(((PrecioBruto / (PorcImpuesto + 1)) - 1) * 100, 3));
                                eTEMPORAL.PRO_MARGENGANACIAESTIMADA = Convert.ToDecimal(numPorcentaje.Value);
                                eTEMPORAL.PRO_PRECIOVTA = precioFinal;
                                eTEMPORAL.TEMP_FECHA = DateTime.Now;

                                if (nuevoBandera)
                                {
                                    //alta temporal precio
                                    cTEMPORALS.Alta(eTEMPORAL);
                                }
                                else
                                {
                                    //actualiza en temporal precio
                                    cTEMPORALS.ModificacionPrecio(TEMP);
                                }
                            }
                        }

                        #endregion

                        #region //radVta y %

                        else
                        {
                            foreach (var item in ListProductoImprimir)
                            {
                                PorcImpuesto = 0;
                                PorcGanancia = 0;
                                PrecioCosto = 0;
                                precioVta = 0;

                                var nuevoBandera = false;
                                TEMPORAL_PRECIO eTEMPORAL = null;
                                var TEMP = cTEMPORALS.ObtenerPorIDProducto(item.PRO_ID);

                                if (TEMP == null)
                                {
                                    eTEMPORAL = new TEMPORAL_PRECIO();
                                    nuevoBandera = true;
                                }
                                else
                                {
                                    eTEMPORAL = TEMP;
                                }

                                PorcImpuesto = Convert.ToDecimal(item.TIPO_IVA.TIVA_PORCENTAJE) / 100;

                                PrecioCosto = Convert.ToDecimal(item.PRO_COSTO);
                                eTEMPORAL.PRO_COSTO = PrecioCosto;
                                eTEMPORAL.PRO_ID = item.PRO_ID;

                                var PorcAumentoVenta = (numPorcentaje.Value / 100) + 1;
                                precioVta = Convert.ToDecimal(item.PRO_PRECIOVTA) * PorcAumentoVenta;

                                precioVta = decimal.Round(precioVta, 3);

                                decimal precioFinal = 0;
                                if (ePARAMETRO.PAR_ESTADOREDONDEO == true)
                                {
                                    //redondeando
                                    if (ePARAMETRO.PAR_FORMAREDONDEO == 1)
                                    {
                                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma1((decimal)precioVta, ePARAMETRO.PAR_1RED_00_25, ePARAMETRO.PAR_1RED_025_50, ePARAMETRO.PAR_1RED_50_75, ePARAMETRO.PAR_1RED_75_1));
                                    }
                                    else
                                    {
                                        precioFinal = Convert.ToDecimal(COMMON.MetodosComunes.RedondeoForma2((decimal)precioVta, ePARAMETRO.PAR_2RED_00_50, ePARAMETRO.PAR_2RED_50_1));
                                    }
                                }
                                //sin redondeo
                                else
                                {
                                    precioFinal = (decimal)precioVta;
                                }

                                //tengo que recalcular el margen de ganancia si se redondio
                                var PrecioBruto = Convert.ToDecimal(precioFinal / eTEMPORAL.PRO_COSTO);
                                eTEMPORAL.PRO_MARGENGANANCIAREAL = Convert.ToDecimal(decimal.Round(((PrecioBruto / (PorcImpuesto + 1)) - 1) * 100, 3));
                                eTEMPORAL.PRO_MARGENGANACIAESTIMADA = Convert.ToDecimal(numPorcentaje.Value);
                                eTEMPORAL.PRO_PRECIOVTA = precioFinal;
                                eTEMPORAL.TEMP_FECHA = DateTime.Now;

                                if (nuevoBandera)
                                {
                                    //alta temporal precio
                                    cTEMPORALS.Alta(eTEMPORAL);
                                }
                                else
                                {
                                    //actualiza en temporal precio
                                    cTEMPORALS.ModificacionPrecio(TEMP);
                                }
                            }
                        }

                        #endregion
                    }

                    #endregion

                    #endregion

                    TRANSACCION.Complete();
                }

                //*********************IMAGEN PROGRESS BAR**********************
                picProgresBar.Visible = false;
                oK_CANCEL1.Visible = true;
                //*******************************************************

                MostrarMensajeInformativo("Los Productos que se desean actualizar se han colocado en la lista de pendiente de actualizacion. Para que el cambio de producto tenga efecto, tiene que realizar la Actualizacion de Precios de Producto.");

                this.Close();
            }
            catch (Exception ex)
            {
                ProcesarExcepcion(ex);
                DialogResult = DialogResult.None;

                this.Close();
            }
        }