[[Category:MACRO]]
== Descripción ==
Rutina de control de la botonera de Componentes dentro de [[FORM:Presupuesto]]
== Biblioteca ==
*[[LIBR:SpanexB]]
== Composición ==
== Código ==
<small><pre>
Sub BotonEditarComponentes (oEvent as Object)

Dim oSelect		as String
Dim oForm		as Object
Dim oSubForm	as Object
Dim oMensaje	as String
Dim oCondicion	as String

	oSelect		= oEvent.Source.Model.Name
	oForm		= ThisComponent.Drawpage.Forms.getByName("Cabecera")
	oSubForm	= oForm.getByName("Productos")
	oSubFormGrid= oSubForm.getByName("ProductosGrid")
	oCliente	= oForm.getByName("txtVidQuoteCliente").CurrentValue
	oQuoteID	= oSubFormGrid.getByName("fmtVidQuoteID").CurrentValue
	oQuoteItem	= oSubFormGrid.getByName("fmtVidQuoteItem").CurrentValue
	oCantidad	= oSubFormGrid.getByName("fmtVidQuoteProdCantidad").CurrentValue
	oProductoID	= oSubFormGrid.getByName("txtVidQuoteProdID").CurrentValue
	if oSubForm.getByName("txtVidQuoteQuick").CurrentValue = 0 Then
		oQuick	= 2
	else
		oQuick	= 1
	end if
	oAncho		= oSubFormGrid.getByName("fmtVidQuoteAncho").CurrentValue
	oAlto		= oSubFormGrid.getByName("fmtVidQuoteAlto").CurrentValue
	oMensaje	= ""
	'MsgBox("Test")
	select case oSelect
		case "BtnEditar"
			oMensaje	= ""
			oMensaje	= oMensaje & "Se procederá a actualizar el esquema del producto, "
			oMensaje	= oMensaje & "incluyendo sus precios. ¿Desea continuar?"
			if MsgBox(SplitMsg(oMensaje,40),MB_YESNO+MB_ICONEXCLAMATION,"Atención!") = IDYES Then
				oListaPrecio	= oForm.getByName("DataCliente").getByName("fmtListaPrecio").CurrentValue
				oCoeficienteCL	= oForm.getByName("DataCliente").getByName("fmtCoeficienteAC").CurrentValue
				oCoeficienteAC	= oForm.getByName("DataAgente").getByName("fmtCoeficienteAC").CurrentValue
				oCoeficienteMU	= oCoeficienteCL * oCoeficienteAC
				oConnection		= oEvent.Source.Model.Parent.ActiveConnection
				SQLStatement	= oConnection.preparestatement("CALL AltaItemPresupuestoTmp (?,?,?,?,?,?,?,?,?)")
				SQLStatement.setint(1,oQuoteID)
				SQLStatement.setint(2,oListaPrecio)
				SQLStatement.setint(3,oQuoteItem)
				SQLStatement.setstring(4,oProductoID)
				SQLStatement.setstring(5,oCantidad)	    
				SQLStatement.setint(6,oAncho)
				SQLStatement.setint(7,oAlto)
				SQLStatement.setfloat(8,oCoeficienteCL * oCoeficienteAC)
				SQLStatement.setint(9,oQuick)				
				SQLStatement.execute()
				SQLStatement.close()
				oSubForm.getByName("ComponentesSimple").reload()
				oSubForm.getByName("ComponentesSimple").getByName("ComponentesSimpleGrid").setPropertyValue("EnableVisible",True)
				oSubForm.getByName("ComponentesDisplay").getByName("ComponentesDisplayGrid").setPropertyValue("EnableVisible",False)
				oSubForm.getByName("ComponentesDisplay").reload()
				oSubForm.getByName("ComponentesSimple").getByName("SubTotalProducto").getByName("Total").setPropertyValue("EnableVisible",True)
			end if
		case "BtnAplicar"
			oMensaje	= ""
			oMensaje	= oMensaje & "Se procederá a grabar el nuevo esquema del producto. " & Chr(13)
			oMensaje	= oMensaje & "¿Desea continuar?"
			if MsgBox(oMensaje,MB_YESNO+MB_ICONEXCLAMATION,"Atención!") = IDYES Then
				TextoStatusBar("Aguarde un momento...")
				oSubTotProducto	= oSubForm.getByName("ComponentesSimple").getByName("SubTotalProducto").getByName("Total").CurrentValue
				oSubFormGrid.getByName("fmtVidQuotePrecio").BoundField.UpdateDouble(oSubTotProducto)
				oSubForm.UpdateRow()
				'Save data in vidquoten3
				oConnection		= oEvent.Source.Model.Parent.ActiveConnection
				SQLStatement	= oConnection.preparestatement("CALL GrabaItemPresupuestoTmp (?,?)")
				SQLStatement.setint(1,oQuoteID)
				SQLStatement.setint(2,oQuoteItem)
				SQLStatement.execute()
				SQLStatement.close()
				TextoStatusBar("")
			end if
			oSubForm.getByName("ComponentesDisplay").reload()
			oSubForm.getByName("ComponentesDisplay").getByName("ComponentesDisplayGrid").setPropertyValue("EnableVisible",True)
			oSubForm.getByName("ComponentesSimple").getByName("ComponentesSimpleGrid").setPropertyValue("EnableVisible",False)
			oSubForm.getByName("ComponentesSimple").reload()
			oSubForm.getByName("ComponentesSimple").getByName("SubTotalProducto").getByName("Total").setPropertyValue("EnableVisible",False)
			oSubForm.getByName("TotalListaProductos").reload()
		case "BtnReset"
			TextoStatusBar("Aguarde un momento...")
			'oCondicion		= "ClienteID='" & oCliente & "'"
			oConnection		= oEvent.Source.Model.Parent.ActiveConnection
			SQLStatement	= oConnection.preparestatement("CALL ResetEdicionItemTmp (?,?)")
			SQLStatement.setint(1,oQuoteID)
			SQLStatement.setint(2,oQuoteItem)
			SQLStatement.execute()
			SQLStatement.close()
			oSubForm.getByName("ComponentesDisplay").reload()
			oSubForm.getByName("ComponentesDisplay").getByName("ComponentesDisplayGrid").setPropertyValue("EnableVisible",True)
			oSubForm.getByName("ComponentesSimple").getByName("ComponentesSimpleGrid").setPropertyValue("EnableVisible",False)
			oSubForm.getByName("ComponentesSimple").reload()
			oSubForm.getByName("ComponentesSimple").getByName("SubTotalProducto").getByName("Total").setPropertyValue("EnableVisible",False)
			TextoStatusBar("")			
	end select
end Sub
</pre></small>
== Bitácora ==
== Uso ==
*[[FORM:Presupuesto]]