private void Button0_ClickBefore(object sboObject, SAPbouiCOM.SBOItemEventArg pVal, out bool BubbleEvent) { BubbleEvent = true; if (Button0.Item.Enabled) { try { oForm = Application.SBO_Application.Forms.Item(pVal.FormUID); if (!Funciones.DataTableExists(oForm, "DT_SQL")) { oForm.DataSources.DataTables.Add("DT_SQL"); } oDataTable = oForm.DataSources.DataTables.Item("DT_SQL"); oDBDataSource = oForm.DataSources.DBDataSources.Item("OVPM"); string sDocNum = oDBDataSource.GetValue("DocNum", oDBDataSource.Offset).ToString(); string sDocEntry = oDBDataSource.GetValue("DocEntry", 0) == "" ? "0" : (oDBDataSource.GetValue("DocEntry", 0)); string sCardCode = oDBDataSource.GetValue("CardCode", oDBDataSource.Offset).ToString(); double dTrsfrSum = Funciones.GetDoubleFromString(oDBDataSource.GetValue("TrsfrSum", oDBDataSource.Offset).ToString()); double dDocTotal = Funciones.GetDoubleFromString(oDBDataSource.GetValue("DocTotal", oDBDataSource.Offset).ToString()); //PARA AUTORIZAR CHEQUES double dCheckSum = Funciones.GetDoubleFromString(oDBDataSource.GetValue("CheckSum", oDBDataSource.Offset).ToString()); string sCheckAutor = oDBDataSource.GetValue("U_Cheque_Autor", oDBDataSource.Offset).ToString(); if (sCardCode.Trim().Length != 0 && dDocTotal > 0) { string sAprovved = "0"; if (dTrsfrSum == 0) { sAprovved = "1"; } else { sAprovved = "0"; } //PARA AUTORIZAR CHEQUES if (dCheckSum > 0 && sCheckAutor.Trim() == "Si") { sAprovved = "0"; } oDataTable = NTablaAutoriza.BuscarDatosAutorizacion(oDataTable, "46", sDocNum); if (!oDataTable.IsEmpty) { for (int i = 0; i <= oDataTable.Rows.Count - 1; i++) { string sCodeUDO = oDataTable.GetValue("Code", i).ToString(); NTablaAutoriza.EliminarDatosAutorizacion(sCodeUDO); } } NTablaAutoriza.InsertarDatosAutorizacion("46", sDocEntry, sDocNum, sAprovved, "", Convert.ToString(Program.oCompany.UserSignature), DateTime.Now.ToString("MMM dd yyyy h:ss tt")); } } catch (Exception) { } } }
public static void Comparar_Lineas_Solicitud(string FormID) { try { oForm = oForm = Application.SBO_Application.Forms.Item(FormID); oDataTable = oForm.DataSources.DataTables.Item("DT_SQL"); oMatrix = (SAPbouiCOM.Matrix)oForm.Items.Item("38").Specific; string Codigo = ((SAPbouiCOM.EditText)oMatrix.Columns.Item("1").Cells.Item(1).Specific).Value; SAPbouiCOM.DBDataSource source = oForm.DataSources.DBDataSources.Item("POR1"); int nNumLineas = 0; int nDiferente = 0; string iBaseEntry = "0"; string iBaseEntryAnt = "0"; string iBaseLine = "0"; string sBaseType = "-1"; string sItemCode = ""; string sDscription = ""; string dQuantity = ""; string dPrice = ""; string dLineTotal = ""; string sql = ""; string sAutorizador = ""; string sDocEntry = ""; string sDocNum = ""; string sDocTotal = ""; string sVatSum = ""; string sDiscSum = ""; string sBrutoSolicitud = ""; string sUserSign = ""; for (int i = 1; i < oMatrix.RowCount; i++) //for (int i = 0; i < source.Size; i++) { sBaseType = ((SAPbouiCOM.EditText)oMatrix.Columns.Item("43").Cells.Item(i).Specific).Value; //(source.GetValue("BaseType", i)); iBaseEntry = ((SAPbouiCOM.EditText)oMatrix.Columns.Item("45").Cells.Item(i).Specific).Value; //(source.GetValue("BaseEntry", i)); iBaseLine = ((SAPbouiCOM.EditText)oMatrix.Columns.Item("46").Cells.Item(i).Specific).Value; //(source.GetValue("BaseLine", i)); sItemCode = ((SAPbouiCOM.EditText)oMatrix.Columns.Item("1").Cells.Item(i).Specific).Value; //(source.GetValue("ItemCode", i)); sDscription = ((SAPbouiCOM.EditText)oMatrix.Columns.Item("3").Cells.Item(i).Specific).Value; //(source.GetValue("Dscription", i)); dQuantity = ((SAPbouiCOM.EditText)oMatrix.Columns.Item("11").Cells.Item(i).Specific).Value; //(source.GetValue("Quantity", i)); dPrice = ((SAPbouiCOM.EditText)oMatrix.Columns.Item("14").Cells.Item(i).Specific).Value.Replace(".", "|").Replace(",", ".").Replace("|", "").Replace("$", ""); //(source.GetValue("Price", i)); dLineTotal = ((SAPbouiCOM.EditText)oMatrix.Columns.Item("21").Cells.Item(i).Specific).Value.Replace(".", "|").Replace(",", ".").Replace("|", "").Replace("$", ""); //(source.GetValue("LineTotal", i)); if (sBaseType.Trim() != "1470000113") // Verifica que las lineas provengan de una solicitud de compra { nDiferente = 1; break; } if (i > 1) { if (iBaseEntryAnt != iBaseEntry) //Verifica que los numeros de Solicitud sean iguales para cada linea { nDiferente = 1; break; } } else { iBaseEntryAnt = iBaseEntry; // Solicitud Base de la primera linea } sql = @"SELECT TM.UserID,(T0.DocTotal-T0.VatSum+T0.DiscSum) as 'Bruto Solicitud' FROM OPRQ T0 JOIN OWDD T1 ON T0.DocEntry = T1.DocEntry AND T0.ObjType = T1.ObjType LEFT JOIN (SELECT AP.WddCode,AP.UserID FROM WDD1 AP JOIN (select wddcode,MAX(StepCode) as Ultimo FROM WDD1 GROUP BY WddCode) MX ON AP.WddCode = MX.WddCode AND AP.StepCode = MX.Ultimo) TM ON T1.WddCode = TM.WddCode JOIN PRQ1 T2 ON T0.DocEntry = T2.DocEntry WHERE T1.Status = 'Y' AND T2.DocEntry = " + iBaseEntry.ToString().Trim() + " AND T2.LineNum = " + iBaseLine.ToString().Trim() + @" AND T2.[ItemCode] = '" + sItemCode + @"' AND RTRIM(LTRIM(T2.[Dscription])) = '" + sDscription + @"' AND T2.[Quantity] = " + dQuantity.ToString().Trim() + @" AND T2.[Price] = " + dPrice.ToString().Trim() + @" AND T2.[LineTotal] = " + dLineTotal.ToString().Trim(); oDataTable.ExecuteQuery(sql); if (!oDataTable.IsEmpty) { nNumLineas += 1; sAutorizador = oDataTable.GetValue("UserID", 0).ToString(); sBrutoSolicitud = oDataTable.GetValue("Bruto Solicitud", 0).ToString(); } else { nDiferente = 1; break; } } if (nNumLineas != oMatrix.RowCount - 1)//(nNumLineas != source.Size) { nDiferente = 1; } source = oForm.DataSources.DBDataSources.Item("OPOR"); sDocEntry = (source.GetValue("DocEntry", 0)) == "" ? "0" : (source.GetValue("DocEntry", 0)); sDocNum = (source.GetValue("DocNum", 0)); sDocTotal = (source.GetValue("DocTotal", 0)); sVatSum = (source.GetValue("VatSum", 0)); sDiscSum = (source.GetValue("DiscSum", 0)); sUserSign = (source.GetValue("UserSign", 0)) == "" ? Convert.ToString(Program.oCompany.UserSignature) : (source.GetValue("UserSign", 0)); //sql = "DELETE FROM [@ZAUTORI] WHERE U_ObjType = 22 AND U_DocNum = ISNULL(" + sDocNum + ",0)"; //oDataTable.ExecuteQuery(sql); oDataTable = NTablaAutoriza.BuscarDatosAutorizacion(oDataTable, "22", sDocNum); if (!oDataTable.IsEmpty) { for (int i = 0; i <= oDataTable.Rows.Count - 1; i++) { string sCodeUDO = oDataTable.GetValue("Code", i).ToString(); NTablaAutoriza.EliminarDatosAutorizacion(sCodeUDO); } } NTablaAutoriza.InsertarDatosAutorizacion("22" , sDocEntry , sDocNum , nDiferente.ToString() , sAutorizador , sUserSign , DateTime.Now.ToString("MMM dd yyyy h:ss tt")); // sql = @" INSERT INTO [dbo].[@ZAUTORI] // ([Code] // ,[Name] // ,[U_ObjType] // ,[U_DocEntry] // ,[U_DocNum] // ,[U_Approved] // ,[U_UserPrevDoc] // ,[U_UserSing] // ,[U_CreateDate]) // VALUES // ((select isnull(max(CAST([Code] as int)),0)+1 as Proximo from [dbo].[@ZAUTORI]) // ,(select isnull(max(CAST([Name] as int)),0)+1 as Proximo from [dbo].[@ZAUTORI]) // ,'22' // ,'" + sDocEntry + @"' // ,'" + sDocNum + @"' // ,'" + nDiferente + @"' // ,'" + sAutorizador + @"' // ,'" + sUserSign + @"' // ,CONVERT(Datetime,GETDATE()))"; // oDataTable.ExecuteQuery(sql); } catch (Exception) {} }