void Guardar()
        {
            string rpta    = "";
            bool   guardar = true;

            if (string.IsNullOrWhiteSpace(textDestino.Text))
            {
                guardar = false;
                XtraMessageBox.Show("Debe escribir el destino", "Generando orden de compra");
            }
            //if (string.IsNullOrWhiteSpace(textObservaciones.Text))
            //{
            //    guardar = false;
            //    XtraMessageBox.Show("Debe escribir la observación","Generando orden de compra");
            //}
            if (string.IsNullOrWhiteSpace(textContactoRecibe.Text))
            {
                guardar = false;
                XtraMessageBox.Show("Debe escribir el contacto que recibe", "Generando orden de compra");
            }
            if (gridViewDetalleSubOrden.DataRowCount == 0)
            {
                guardar = false;
                XtraMessageBox.Show("La orden no se puede generar", "Generando orden de compra");
            }
            if (dateEditIngreosBodega.EditValue == null)
            {
                guardar = false;
                XtraMessageBox.Show("Debe especificar la fecha de ingreso", "Generando orden de compra");
            }


            if (guardar)
            {
                int          RowCount     = 0;
                int          CountChecked = 0;
                MOrdenCompra orden        = new MOrdenCompra();
                orden.IdTienda           = Configuraciones.Configuraciones.idtienda;
                orden.IdUsuario          = Configuraciones.Configuraciones.idusuario;
                orden.Serie              = "A";
                orden.Destino            = textDestino.Text;
                orden.Observaciones      = string.IsNullOrWhiteSpace(textObservaciones.Text) == true ? "" : textObservaciones.Text;
                orden.QuienRecibe        = textContactoRecibe.Text;
                orden.FechaIngresoBodega = Convert.ToDateTime(dateEditIngreosBodega.EditValue);
                orden.Idsuborden         = idsuborden;



                RowCount = gridViewDetalleSubOrden.DataRowCount;
                for (int i = 0; i < RowCount; i++)
                {
                    if (Convert.ToBoolean(gridViewDetalleSubOrden.GetRowCellValue(i, "verificado")))
                    {
                        CountChecked++;
                    }
                }

                if (CountChecked == RowCount)
                {
                    orden.Id_estado_orden_de_compra = 2;
                }
                if (CountChecked != RowCount)
                {
                    orden.Id_estado_orden_de_compra = 3;
                }
                if (CountChecked == 0)
                {
                    orden.Id_estado_orden_de_compra = 1;
                }


                List <MOrdenCompraDetalle> ordenDetalleInsercion = new List <MOrdenCompraDetalle>();
                for (int i = 0; i < gridViewDetalleSubOrden.DataRowCount; i++)
                {
                    MOrdenCompraDetalle ordenDet = new MOrdenCompraDetalle();
                    ordenDet.IdTienda          = Configuraciones.Configuraciones.idtienda;
                    ordenDet.IdSubOrdenDetalle = Convert.ToInt32(gridViewDetalleSubOrden.GetRowCellValue(i, "idsubordendetalle"));
                    ordenDet.Idproducto        = Convert.ToInt32(gridViewDetalleSubOrden.GetRowCellValue(i, "idproducto"));
                    ordenDet.Cantidad          = Convert.ToInt32(gridViewDetalleSubOrden.GetRowCellValue(i, "cantidad_autorizada"));
                    ordenDet.Verificado        = Convert.ToBoolean(gridViewDetalleSubOrden.GetRowCellValue(i, "verificado"));
                    ordenDetalleInsercion.Add(ordenDet);
                }

                List <MHistorialPreciosCostos> HistorialInsert = new List <MHistorialPreciosCostos>();
                for (int i = 0; i < gridViewDetalleSubOrden.DataRowCount; i++)
                {
                    if (Convert.ToBoolean(gridViewDetalleSubOrden.GetRowCellValue(i, "verificado")))
                    {
                        MHistorialPreciosCostos Historial = new MHistorialPreciosCostos();
                        Historial.IdTienda             = Configuraciones.Configuraciones.idtienda;
                        Historial.IdUsuarioCreacion    = Configuraciones.Configuraciones.idusuario;
                        Historial.IdOrigenMontoPrecios = 1;
                        Historial.IdSubOrden           = idsuborden;
                        Historial.IdProducto           = Convert.ToInt32(gridViewDetalleSubOrden.GetRowCellValue(i, "idproducto"));
                        Historial.Costo       = Convert.ToDecimal(gridViewDetalleSubOrden.GetRowCellValue(i, "ultimo_costo"));
                        Historial.PrecioVenta = Convert.ToDecimal(gridViewDetalleSubOrden.GetRowCellValue(i, "precioa"));
                        HistorialInsert.Add(Historial);
                    }
                }

                rpta = ControllerGenerarOrdenCompra.GenerarOrdenDeCompra(orden, ordenDetalleInsercion, HistorialInsert);

                if (rpta == "OK")
                {
                    //DOUCUMENTO GENERAL
                    MSalidaEnc salida = new MSalidaEnc();
                    salida.IdTienda  = Configuraciones.Configuraciones.idtienda;
                    salida.IdUsuario = Configuraciones.Configuraciones.idusuario;
                    salida.IdDocumentoDeInventrio = 1007;
                    salida.IdSerie         = 1;
                    salida.IdDestino       = 0;
                    salida.IdBodegaDestino = 0;
                    salida.Observaciones   = string.IsNullOrWhiteSpace(textObservaciones.Text) == true ? "" : textObservaciones.Text;
                    salida.Descripcion     = "PROOVEEDOR DESTINO: " + textProveedor.Text;
                    salida.Origen          = "TIENDA ORIGEN: " + Configuraciones.Configuraciones.tienda;
                    salida.Destino         = "PROVEEDOR DESTINO:" + textProveedor.Text;
                    salida.FechaDeIngreso  = Convert.ToDateTime(dateEditIngreosBodega.EditValue);
                    salida.Serie           = "A";
                    salida.SeraIngresado   = true;
                    salida.TipoSalida      = 3;
                    salida.IdSubTraslado   = 0;
                    salida.NumeroEnvio     = 0;
                    salida.Ingresado       = false;


                    List <MSalidaDetalle> DetalleInserccion = new List <MSalidaDetalle>();
                    for (int i = 0; i < gridViewDetalleSubOrden.DataRowCount; i++)
                    {
                        MSalidaDetalle SalidaDetalle = new MSalidaDetalle();
                        SalidaDetalle.IdTienda             = Configuraciones.Configuraciones.idtienda;
                        SalidaDetalle.IdSubTrasladoDetalle = 0;
                        SalidaDetalle.IdProducto           = Convert.ToInt32(gridViewDetalleSubOrden.GetRowCellValue(i, "idproducto"));
                        SalidaDetalle.Cantidad             = Convert.ToInt32(gridViewDetalleSubOrden.GetRowCellValue(i, "cantidad_autorizada"));
                        SalidaDetalle.IdExistenciaDetalle  = 0;
                        SalidaDetalle.IdBodega             = 0;
                        SalidaDetalle.EsVenta = 1; //es ventoa u otra salida
                        DetalleInserccion.Add(SalidaDetalle);
                    }
                    List <MSerieProducto> IngresoDetalleInsercionSeriesProducto = new List <MSerieProducto>();

                    rpta = ControllerSalidas.Salidas(salida, DetalleInserccion, IngresoDetalleInsercionSeriesProducto);

                    if (rpta == "OK")
                    {
                        FormImprimirOrdenCompra modalImprimir = new FormImprimirOrdenCompra();
                        modalImprimir.IdTienda = Configuraciones.Configuraciones.idtienda;
                        modalImprimir.IdOrden  = ControllerGenerarOrdenCompra.IdOrdenDeCompra;
                        modalImprimir.ShowDialog();
                        textProveedor.Text      = string.Empty;
                        textDestino.Text        = string.Empty;
                        textObservaciones.Text  = string.Empty;
                        textContactoRecibe.Text = string.Empty;
                        idsuborden = 0;
                        dtDetalleSubOrdenInsercion.Rows.Clear();

                        EsBotonOTecla = true;

                        this.Close();
                    }
                    else
                    {
                        XtraMessageBox.Show("Ocurrio un error al crear el traslado, profavor consulte a su administrador de datos " + rpta, "Error al crear traslado");
                    }
                }
                else
                {
                    XtraMessageBox.Show("Ocurrio un error al generar la orden, porfavor consulte a su administrador de datos: " + rpta, "Generando orden de compra");
                }
            }
        }
        void Save()
        {
            bool   recibido         = true;
            string rpta             = "";
            int    count_autorizado = 0;
            int    count_filas      = 0;

            count_filas = gridViewDetalleOrdenCompra.DataRowCount;

            if (gridViewDetalleOrdenCompra.DataRowCount == 0)
            {
                XtraMessageBox.Show("No hay detalle de productos agregados para verificar orden", "Verificando orden de compra", MessageBoxButtons.OK, MessageBoxIcon.Information);
                recibido = false;
            }

            for (int i = 0; i < gridViewDetalleOrdenCompra.DataRowCount; i++)
            {
                if (Convert.ToBoolean(gridViewDetalleOrdenCompra.GetRowCellValue(i, "autorizado")))
                {
                    CountChecked++;
                }
            }

            for (int i = 0; i < gridViewDetalleOrdenCompra.DataRowCount; i++)
            {
                if (Convert.ToBoolean(gridViewDetalleOrdenCompra.GetRowCellValue(i, "autorizado")))
                {
                    if (Convert.ToDecimal(gridViewDetalleOrdenCompra.GetRowCellValue(i, "nuevo_precio")) == 0)
                    {
                        XtraMessageBox.Show("El precio de venta debe ser mayor a 0", "Verificando orden de compra", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        recibido = false;
                        break;
                    }
                }
            }

            if (CountChecked == 0)
            {
                XtraMessageBox.Show("Debe seleccionar uno o mas productos para autorizar su ingreso", "Verificando orden de compra", MessageBoxButtons.OK, MessageBoxIcon.Information);
                recibido = false;
            }



            if (recibido)
            {
                int RowCount = 0;
                CountChecked = 0;

                MOrdenCompra orden = new MOrdenCompra();
                orden.IdTienda = Configuraciones.Configuraciones.idtienda;
                orden.IdGenorDenCompraEncabezado = idorden;


                RowCount = gridViewDetalleOrdenCompra.DataRowCount;
                for (int i = 0; i < RowCount; i++)
                {
                    if (Convert.ToBoolean(gridViewDetalleOrdenCompra.GetRowCellValue(i, "autorizado")))
                    {
                        CountChecked++;
                    }
                }

                if (CountChecked == RowCount)
                {
                    orden.Id_estado_orden_de_compra = 2;
                }
                if (CountChecked != RowCount)
                {
                    orden.Id_estado_orden_de_compra = 3;
                }
                if (CountChecked == 0)
                {
                    orden.Id_estado_orden_de_compra = id_estado_orden_de_compra;
                }

                List <MOrdenCompraDetalle> detalleInsercionPreciosCostos = new List <MOrdenCompraDetalle>();
                for (int i = 0; i < gridViewDetalleOrdenCompra.DataRowCount; i++)
                {
                    if (Convert.ToBoolean(gridViewDetalleOrdenCompra.GetRowCellValue(i, "autorizado")))
                    {
                        MOrdenCompraDetalle detalleOrden = new MOrdenCompraDetalle();
                        detalleOrden.Idproducto              = Convert.ToInt32(gridViewDetalleOrdenCompra.GetRowCellValue(i, "idproducto"));
                        detalleOrden.NuevoCosto              = Convert.ToDecimal(gridViewDetalleOrdenCompra.GetRowCellValue(i, "nuevo_costo"));
                        detalleOrden.NuevoPrecio             = Convert.ToDecimal(gridViewDetalleOrdenCompra.GetRowCellValue(i, "nuevo_precio"));
                        detalleOrden.Recibidos               = Convert.ToInt32(gridViewDetalleOrdenCompra.GetRowCellValue(i, "cantidad"));
                        detalleOrden.IdGenorDenCompraDetalle = Convert.ToInt32(gridViewDetalleOrdenCompra.GetRowCellValue(i, "idgenordencompradetalle"));
                        detalleOrden.IdTienda = Configuraciones.Configuraciones.idtienda;
                        detalleInsercionPreciosCostos.Add(detalleOrden);
                    }
                }

                List <MHistorialPreciosCostos> HistorialInsert = new List <MHistorialPreciosCostos>();
                for (int i = 0; i < gridViewDetalleOrdenCompra.DataRowCount; i++)
                {
                    if (Convert.ToBoolean(gridViewDetalleOrdenCompra.GetRowCellValue(i, "autorizado")))
                    {
                        MHistorialPreciosCostos Historial = new MHistorialPreciosCostos();
                        Historial.IdTienda             = Configuraciones.Configuraciones.idtienda;
                        Historial.IdUsuarioCreacion    = Configuraciones.Configuraciones.idusuario;
                        Historial.IdOrigenMontoPrecios = 3;
                        Historial.IdSubOrden           = Convert.ToInt32(gridViewDetalleOrdenCompra.GetRowCellValue(i, "idsuborden"));
                        Historial.IdProducto           = Convert.ToInt32(gridViewDetalleOrdenCompra.GetRowCellValue(i, "idproducto"));
                        Historial.Costo       = Convert.ToDecimal(gridViewDetalleOrdenCompra.GetRowCellValue(i, "nuevo_costo"));
                        Historial.PrecioVenta = Convert.ToDecimal(gridViewDetalleOrdenCompra.GetRowCellValue(i, "nuevo_precio"));
                        HistorialInsert.Add(Historial);
                    }
                }



                rpta = ControllerVerificacion.ActulizarDetalleOCPreciosCostos(orden, detalleInsercionPreciosCostos, HistorialInsert);

                if (rpta == "OK")
                {
                    XtraMessageBox.Show("El detalle de la orden se actualizo de forma correcta", "Verificando orden de compra", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    DataTable dt = new DataTable();
                    dt = ControllerVerificacion.MostrarDetalleOrdenCompra(idorden, Configuraciones.Configuraciones.idtienda);
                    if (dt.Rows.Count > 0)
                    {
                        txtProveedor.Text     = dt.Rows[0]["proveedor"].ToString();
                        txtObservaciones.Text = dt.Rows[0]["observaciones"].ToString();
                        txtQuienRecibe.Text   = dt.Rows[0]["quien_recibe_orden"].ToString();
                        txtCodigo.Text        = dt.Rows[0]["correlativo"].ToString();
                        txtEstado.Text        = dt.Rows[0]["estado_orden"].ToString();
                        idorden = Convert.ToInt32(dt.Rows[0]["idgenordencompraencabezado"]);

                        gridControlDetalleOrdenCompra.DataSource = dt;
                        gridControlDetalleOrdenCompra.ForceInitialize();
                        gridViewDetalleOrdenCompra.BestFitColumns();

                        if (txtEstado.Text.Equals("Completo"))
                        {
                            layoutControlItemBtnRecibido.Enabled = false;
                        }
                        else
                        {
                            layoutControlItemBtnRecibido.Enabled = true;
                        }
                    }
                    else
                    {
                        txtProveedor.Text     = string.Empty;
                        txtObservaciones.Text = string.Empty;
                        txtQuienRecibe.Text   = string.Empty;
                        txtCodigo.Text        = string.Empty;
                        txtEstado.Text        = string.Empty;
                        idorden = 0;

                        gridControlDetalleOrdenCompra.DataSource = dt;
                        gridControlDetalleOrdenCompra.ForceInitialize();
                        gridViewDetalleOrdenCompra.BestFitColumns();
                    }
                }
                else
                {
                    XtraMessageBox.Show("Ocurrio un error al actualizar el detalle, por favor consulte a su administrador de datos " + rpta, "Verificando orden de compra", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
Esempio n. 3
0
        //int idtienda,int idorden, int idetalle, decimal nuevocosto, decimal nuevoprecio, int idproducto
        public static string ActulizarDetalleOCPreciosCostos(MOrdenCompra orden, List <MOrdenCompraDetalle> detalleInsercion, List <MHistorialPreciosCostos> HistorialDetalleInsert)
        {
            string         rpta      = "";
            MProcedimiento objProc   = new MProcedimiento();
            MExecute       objExcute = new MExecute();

            try
            {
                objProc.NombreProcedimiento = "SPUpdate_OrdenDeCompraEstadoRecibido";
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@id_tienda", Valor = orden.IdTienda, Tipo = DbType.Int64, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@id_orden_compra_encabezado", Valor = orden.IdGenorDenCompraEncabezado, Tipo = DbType.Int64, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@id_estado_orden_de_compra", Valor = orden.Id_estado_orden_de_compra, Tipo = DbType.Int64, Out = false
                });

                objExcute.IniciarTran();
                rpta = objExcute.UpsertTransaction(objProc);

                if (detalleInsercion != null)
                {
                    if (rpta.Equals("OK"))
                    {
                        foreach (MOrdenCompraDetalle item in detalleInsercion)
                        {
                            MProcedimiento objProc1 = new MProcedimiento();
                            objProc1.NombreProcedimiento = "SPUpdate_DetalleOrdenCompraCostos";
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_producto", Valor = item.Idproducto, Tipo = DbType.Int32, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@costo", Valor = item.NuevoCosto, Tipo = DbType.Decimal, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@precioa", Valor = item.NuevoPrecio, Tipo = DbType.Decimal, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@recibido", Valor = item.Recibidos, Tipo = DbType.Int32, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_orden", Valor = orden.IdGenorDenCompraEncabezado, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_orden_compra_detalle", Valor = item.IdGenorDenCompraDetalle, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_tienda", Valor = item.IdTienda, Tipo = DbType.Int32, Out = false
                            });
                            rpta = objExcute.UpsertTransaction(objProc1);
                            if (!rpta.Equals("OK"))
                            {
                                break;
                            }
                        }

                        foreach (MHistorialPreciosCostos item in HistorialDetalleInsert)
                        {
                            MProcedimiento objProc1 = new MProcedimiento();
                            objProc1.NombreProcedimiento = "SPSave_HistorialPreciosCostos";
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@idtienda", Valor = item.IdTienda, Tipo = DbType.Int32, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_usuario_creacion", Valor = item.IdUsuarioCreacion, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_origen_monto_precios", Valor = item.IdOrigenMontoPrecios, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_sub_orden", Valor = item.IdSubOrden, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_producto", Valor = item.IdProducto, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@costo", Valor = item.Costo, Tipo = DbType.Decimal, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@precio_venta", Valor = item.PrecioVenta, Tipo = DbType.Decimal, Out = false
                            });
                            rpta = objExcute.UpsertTransaction(objProc1);
                            if (!rpta.Equals("OK"))
                            {
                                break;
                            }
                        }
                    }
                }

                if (rpta.Equals("OK"))
                {
                    objExcute.TranasctionCommit();
                }
                else
                {
                    objExcute.TranasctionRollback();
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                objExcute.cerrarConexionTransaccion();
            }
            return(rpta);
        }
        //__________ESTA FUNCON ES PARA GENERAR LA ORDEN DE COMPRA COMO TAL_____
        public static string GenerarOrdenDeCompra(MOrdenCompra ordenCompra, List <MOrdenCompraDetalle> detalleInsercion, List <MHistorialPreciosCostos> HistorialDetalleInsert)
        {
            string         rpta      = "";
            MProcedimiento objProc   = new MProcedimiento();
            MExecute       objExcute = new MExecute();

            try
            {
                objProc.NombreProcedimiento = "SPSave_GenerarOrdenDeCompra";
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@idgenordencompraencabezado", Valor = ordenCompra.IdGenorDenCompraEncabezado, Tipo = DbType.Int64, Out = true
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@idtienda", Valor = ordenCompra.IdTienda, Tipo = DbType.Int32, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@idusuario", Valor = ordenCompra.IdUsuario, Tipo = DbType.Int32, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@serie", Valor = ordenCompra.Serie, Tipo = DbType.String, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@destino", Valor = ordenCompra.Destino, Tipo = DbType.String, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@observaciones", Valor = ordenCompra.Observaciones, Tipo = DbType.String, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@quien_recibe_orden", Valor = ordenCompra.QuienRecibe, Tipo = DbType.String, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@fecha_ingreso_bodega", Valor = ordenCompra.FechaIngresoBodega, Tipo = DbType.Date, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@idsuborden", Valor = ordenCompra.Idsuborden, Tipo = DbType.Int32, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@id_estado_orden_de_compr", Valor = ordenCompra.Id_estado_orden_de_compra, Tipo = DbType.Int32, Out = false
                });
                objExcute.IniciarTran();
                rpta = objExcute.UpsertTransaction(objProc);

                if (detalleInsercion != null)
                {
                    if (rpta.Equals("OK"))
                    {
                        int idencabezadoTabla = Convert.ToInt32(objExcute.ParametroDeSalida("@idgenordencompraencabezado"));
                        IdOrdenDeCompra = idencabezadoTabla;
                        foreach (MOrdenCompraDetalle item in detalleInsercion)
                        {
                            item.IdGenorDenCompraEncabezado = idencabezadoTabla;
                            MProcedimiento objProc1 = new MProcedimiento();
                            objProc1.NombreProcedimiento = "SPSave_GenerarOrdenDeCompraDetalle";
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@idtienda", Valor = item.IdTienda, Tipo = DbType.Int32, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@idgenordencompraencabezado", Valor = item.IdGenorDenCompraEncabezado, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@idsubordendetalle", Valor = item.IdSubOrdenDetalle, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@idproducto", Valor = item.Idproducto, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@cantidad", Valor = item.Cantidad, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@verificado", Valor = item.Verificado, Tipo = DbType.Boolean, Out = false
                            });
                            rpta = objExcute.UpsertTransaction(objProc1);
                            if (!rpta.Equals("OK"))
                            {
                                break;
                            }
                        }

                        foreach (MHistorialPreciosCostos item in HistorialDetalleInsert)
                        {
                            MProcedimiento objProc1 = new MProcedimiento();
                            objProc1.NombreProcedimiento = "SPSave_HistorialPreciosCostos";
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@idtienda", Valor = item.IdTienda, Tipo = DbType.Int32, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_usuario_creacion", Valor = item.IdUsuarioCreacion, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_origen_monto_precios", Valor = item.IdOrigenMontoPrecios, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_sub_orden", Valor = item.IdSubOrden, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_producto", Valor = item.IdProducto, Tipo = DbType.Int64, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@costo", Valor = item.Costo, Tipo = DbType.Decimal, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@precio_venta", Valor = item.PrecioVenta, Tipo = DbType.Decimal, Out = false
                            });
                            rpta = objExcute.UpsertTransaction(objProc1);
                            if (!rpta.Equals("OK"))
                            {
                                break;
                            }
                        }
                    }
                }

                if (rpta.Equals("OK"))
                {
                    objExcute.TranasctionCommit();
                }
                else
                {
                    objExcute.TranasctionRollback();
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                objExcute.cerrarConexionTransaccion();
            }
            return(rpta);
        }