private void AtualizarSaldoPreContrato(DBDataSource dbdts) { var tabelaPreContrato = Global.Company.UserTables.Item(new TabelaPreContrato().NomeSemArroba); var numPreContrato = _numeroDoPreContrato.GetValorDBDatasource <string>(dbdts); var numContratoFinal = _numeroDoContrato.GetValorDBDatasource <string>(dbdts); var codePreContrato = FormPreContrato.GetCode(numPreContrato); if (tabelaPreContrato.GetByKey(codePreContrato)) { // tem que ser feito o cálculo levando em consideração a soma dos contratos filhos tirando eu mesmo, // porque senão, toda vez que eu atualizar o contrato final vai subtrair do pre contrato. using (var recordset = new RecordSet()) { var rs = recordset.DoQuery( $@"SELECT SUM(U_QtdSaca) as SaldoSaca, SUM(U_QtdPeso) as SaldoPeso, SUM(U_TLivre) as SaldoLivre FROM [@UPD_OCFC] WHERE 1 = 1 AND {_status.Datasource} <> '{StatusContratoFinal.Cancelado}' AND U_DocNumCC = {numPreContrato} AND U_DocNumCF <> {numContratoFinal}" ); double sacasPreContrato = tabelaPreContrato.UserFields.Fields.Item(_quantidadeDeSacas.Datasource).Value; double pesoPreContrato = tabelaPreContrato.UserFields.Fields.Item(_quantidadeDePeso.Datasource).Value; double livrePreContrato = tabelaPreContrato.UserFields.Fields.Item(_totalLivre.Datasource).Value; double saldoSacas = rs.Fields.Item("SaldoSaca").Value; double saldoPeso = rs.Fields.Item("SaldoPeso").Value; double saldoLivre = rs.Fields.Item("SaldoLivre").Value; double sacasContratoFinal = _saldoDeSacas.GetValorDBDatasource <double>(dbdts); double pesoContratoFinal = _saldoDePeso.GetValorDBDatasource <double>(dbdts); double livreContratoFinal = _saldoFinanceiro.GetValorDBDatasource <double>(dbdts); tabelaPreContrato.UserFields.Fields.Item(_saldoDeSacas.Datasource).Value = sacasPreContrato - saldoSacas - sacasContratoFinal; tabelaPreContrato.UserFields.Fields.Item(_saldoDePeso.Datasource).Value = pesoPreContrato - saldoPeso - pesoContratoFinal; tabelaPreContrato.UserFields.Fields.Item(_saldoFinanceiro.Datasource).Value = livrePreContrato - saldoLivre - livreContratoFinal; tabelaPreContrato.Update(); } } }
private void CancelarSaldoContratoFinal(DBDataSource dbdts) { var tabelaPreContrato = Global.Company.UserTables.Item(new TabelaPreContrato().NomeSemArroba); var numPreContrato = _numeroDoPreContrato.GetValorDBDatasource <string>(dbdts); var numContratoFinal = _numeroDoContrato.GetValorDBDatasource <string>(dbdts); var codePreContrato = FormPreContrato.GetCode(numPreContrato); if (tabelaPreContrato.GetByKey(codePreContrato)) { double sacasPreContrato = tabelaPreContrato.UserFields.Fields.Item(_saldoDeSacas.Datasource).Value; double pesoPreContrato = tabelaPreContrato.UserFields.Fields.Item(_saldoDePeso.Datasource).Value; double livrePreContrato = tabelaPreContrato.UserFields.Fields.Item(_saldoFinanceiro.Datasource).Value; double sacasContratoFinal = _saldoDeSacas.GetValorDBDatasource <double>(dbdts); double pesoContratoFinal = _saldoDePeso.GetValorDBDatasource <double>(dbdts); double livreContratoFinal = _saldoFinanceiro.GetValorDBDatasource <double>(dbdts); tabelaPreContrato.UserFields.Fields.Item(_saldoDeSacas.Datasource).Value = sacasPreContrato + sacasContratoFinal; tabelaPreContrato.UserFields.Fields.Item(_saldoDePeso.Datasource).Value = pesoPreContrato + pesoContratoFinal; tabelaPreContrato.UserFields.Fields.Item(_saldoFinanceiro.Datasource).Value = livrePreContrato + livreContratoFinal; tabelaPreContrato.Update(); } }