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); } } }
//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); }