예제 #1
0
        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();
                }
            }
        }
예제 #2
0
        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();
            }
        }