php – Pagar valor maior que o valor da parcela

Ola,

Eu tenho um sistema onde o cliente cadastra uma passagem. Nessa pagina da passagem tem o valor total, tipo de pagamento, quantas parcelas, etc.

O sistema retorna as parcelas com os valores tudo certo.

O meu cliente pediu para ter a opção de colocar o pagamento da parcela sem ser o valor exato. Ou seja, ele pode escolher quanto o cliente pagou sem ser aquele valor fixo da parcela

Aí que entra o problema. Se o cliente dividiu em 5x de 1000. e na primeira parcela for pagar 1500, o sistema tem que colocar a primeira parcela como paga e atualizar o valor da segunda parcela para 500 em vez de 1000 que seria o valor que sobrou da de cima.

Se o cliente pagar 2500, precisa colocar a 1 e a 2 como pagas e atualizar o valor da terceira parcela.
Não estou conseguindo achar um codigo que faça isso de forma automatica.

Eu fiz um codigo mas so serve para o caso do valor pago nao ser maior que 2 parcelas

if($valorpg < $valor) {
$cad = mysqli_query($con,"update contas_receber set idsituacao = '4', data_pg = now(), quem_recebeu='$quem_recebeu',contadeposito = '$contadeposito', depositante = '$depositante', valorpg = '$valorpg' WHERE idparcelas = $idparcelas") or die(mysqli_error($con));
}
 else if($valorpg > $valor){
 $cad = mysqli_query($con,"update contas_receber set idsituacao = '2', data_pg = now(), quem_recebeu='$quem_recebeu',contadeposito = '$contadeposito', depositante = '$depositante', valorpg = '$valorpg' WHERE idparcelas = $idparcelas") or die(mysqli_error($con));
 $cad2 = mysqli_query($con,"update contas_receber set idsituacao = '4', data_pg = now(), quem_recebeu='$quem_recebeu',contadeposito = '$contadeposito', depositante = '$depositante', valor = '$valorrestante' WHERE idparcelas = $idparcelasprox") or die(mysqli_error($con));
 }
 else if($valorpg = $valor) {
$cad = mysqli_query($con,"update contas_receber set idsituacao = '2', data_pg = now(), quem_recebeu='$quem_recebeu',contadeposito = '$contadeposito', depositante = '$depositante', valorpg = '$valorpg' WHERE idparcelas = $idparcelas") or die(mysqli_error($con));
}   

fila – Por que o valor dessa variavel se modifica sem eu modifica-la?

#include <iostream>
#include <string>
using namespace std;

const int Max_N = 3;

struct Fila
{
    int elem(Max_N);
    int inicio;
    int fim;
};


void constroi(Fila &F)
{
    F.inicio = 0;
    F.fim = 0;
}

void enfilera(Fila &F)
{
    int i;
    i = (F.fim%Max_N) + 1;
    if (F.inicio != i)
    {
        F.fim = i;
        F.elem(F.fim) = 10;
        if (F.inicio == 0)
        {
            F.inicio = 1;
        }
    }
    else
        {
            cout << "Fila Cheia"<<endl;
            return;
        }


}

int main()
{
    Fila F1;

    constroi(F1);

    enfilera(F1);
    enfilera(F1);
    enfilera(F1);


    return 0;
}

Estou criando uma fila circular, entretanto no corpo da função enfilera( que seria para inserir valores na fila) após a fila ficar cheia a variável F.inicio recebe o valor do F.elem(F.fim), pq isso ocorre? quando eu troco o F.elem para um vetor do tipo char, isso não ocorre mais…

javascript – Dúvida em como calcula o valor a pagar do usuário

Você está trabalhando num aplicativo de mobilidade e ficou com a tarefa de fazer a funcionalidade que calcula o valor a pagar do usuário. Olha só que responsa, hein?

A lógica é a seguinte:

Caso a viagem seja muito curta, ou seja, dure menos de 05 minutos, a corrida custará 6 reais, indepententemente da distância percorrida.

Caso a viagem seja média, ou seja, dure entre 05 minutos e uma hora, a viagem custará 1 real por minuto mais 50 centavos por quilômetro percorrido.

Para viagens mais longas, que durem mais de uma hora, o preço da viagem deixa de depender do tempo e passa a depender apenas da distância percorrida.

Neste caso, a viagem custará:

2 reais por quilômetro, caso a distância seja menor que 100km
1,50 reais por quilômetro, caso a distância seja 100km ou mais
Input Format

A entrada será composta por dois parâmetros:

tempo sempre dado em minutos
distancia sempre dada em quilômetros.
Output Format

Imprima na tela o preço total a ser pago pelo usuário, EM CENTAVOS. Lembre-se de que 1 real equivalem a 100 centavos.

Sample Input 0

{
“tempo”: 2,
“distancia”: 1
}

Sample Output 0

600


Não consigo passar daqui, será que alguém poderia me ajudar nessa solução?

if(tempo < 5){
console.log(600)
}
else if(tempo >= 5 && tempo <= 60){

}

python – Em um DataFrame, modificar dados de uma coluna condicionado ao valor de outra coluna

Estou trabalhando numa automação com relatórios para resultados de operaçõesos de compra e venda de criptomoedas/ações.

Preciso converter o valor positivo de uma célula para negativo caso ela seja compra(BUY). E quando é uma operação de venda(SELL) não preciso alterar nada. Já está positivo e se manterá assim.

Abaixo segue o exemplo do DataFrame original:

Exemplo de um DataFrame que precisa ter na coluna Amount valores negativos quando a operação na coluna Side for de BUY

O resultado final para a coluna Amount entre as linhas 4 e 9 deveria ser um valor negativo.
Logo, tenho que condicionar a alteração da coluna Amount à presença do valor BUY na coluna Side.

Tentei usar a função .loc do Pandas. Mas travei na operação de conversão do valor original para o valor negativo.

df.loc(df.Side==’BUY’,’Amount’)=”aqui preciso inserir a fórmula para multiplicar por -1″

Fiz um teste colocando uma variável fixa e funciona. Então, preciso só do comando certo de conversão ou então usar outra função.

Ex: df.loc(df.Side==’BUY’,’Amount’)=’novo valor’
e retornou isto:

Exemplo que a alteração funciona. Só falta o comando adequado.

postgresql – Como retornar só o valor de uma soma de uma coluna do postgrees com python?

Quando eu executo o código ele retorna: ((Decimal(‘25.00’),))
Como faria para pegar só o 25.00?

    import psycopg2

    con = psycopg2.connect(host='localhost', database='database',
    user='postgres', password='12345678')

    cursor = con.cursor()

    con.commit()
    cursor.execute("select sum(valor) from vendas where data between '10-06-2020' and '09-07-2020'")

    recset = cursor.fetchall()

    print(recset)

¿Es posible filtrar un MongoDB sobre el valor de una field cuyo valor es una lista de diccionarios?

Quiero saber si es posible obtener todos los documentos de una base de datos MongoDB consultando sobre los elementos de un campo cuyo valor es una lista. Por ejemplo aquí q2.Results tiene una lista de comentarios y me gustaría obtener todos los documentos donde el UserNickname de la persona que escribió el comentario es Jackobear :

{
  "_id": {
    "$oid": "5fd5e617260828c7646000aa"
  },
  "q2": {
    "Id": "q2",
    "Locale": "fr_FR",
    "Results": (
      {
        "Id": "163069310",
        "CID": "eb523c23-980d-5661-b9d0-c6dc1028fa42",
        "SourceClient": "sephora-fr",
        "Badges": {
          "loyaltyYes--Im-a-VIB-Rouge": {
            "ContentType": "REVIEW",
            "Id": "loyaltyYes--Im-a-VIB-Rouge",
            "BadgeType": "Custom"
          }
        },
        "BadgesOrder": (
          "loyaltyYes--Im-a-VIB-Rouge"
        ),
        "LastModeratedTime": "2020-09-22T12:00:18.000+00:00",
        "LastModificationTime": "2020-12-10T14:36:16.000+00:00",
        "ProductId": "P3742199",
        "CampaignId": "BV_PIE_ONLINE",
        "ContextDataValuesOrder": (
          "Gender",
          "Eyes",
          "Skin"
        ),
        "UserLocation": "Paris",
        "AuthorId": "78948942",
        "ContentLocale": "fr_FR",
        "IsFeatured": false,
        "TotalInappropriateFeedbackCount": {
          "$numberInt": "0"
        },
        "TotalClientResponseCount": {
          "$numberInt": "0"
        },
        "TotalCommentCount": {
          "$numberInt": "0"
        },
        "Rating": {
          "$numberInt": "5"
        },
        "IsRatingsOnly": false,
        "IsRecommended": true,
        "Helpfulness": {
          "$numberDouble": "1.0"
        },
        "TotalFeedbackCount": {
          "$numberInt": "2"
        },
        "TotalNegativeFeedbackCount": {
          "$numberInt": "0"
        },
        "TotalPositiveFeedbackCount": {
          "$numberInt": "2"
        },
        "ModerationStatus": "APPROVED",
        "SubmissionId": "r23232-fr__16007743UA3Zr3O9L5",
        "SubmissionTime": "2020-09-22T11:32:57.000+00:00",
        "ReviewText": "J’adore, il sent le bord de mer une ressemblance avec le parfum Kenzo",
        "Title": "Très bon parfum",
        "UserNickname": "Jackobear",
        "ContextDataValues": {
          "Gender": {
            "Value": "Male",
            "Id": "Gender"
          },
          "Skin": {
            "Value": "Normale",
            "Id": "Skin"
          },
          "Eyes": {
            "Value": "Marrons",
            "Id": "Eyes"
          }
        },
        "Videos": (),
        "Pros": null,
        "InappropriateFeedbackList": (),
        "SecondaryRatings": {},
        "ClientResponses": (),
        "Photos": (),
        "Cons": null,
        "IsSyndicated": false,
        "SecondaryRatingsOrder": (),
        "AdditionalFields": {},
        "RatingRange": {
          "$numberInt": "5"
        },
        "TagDimensions": {},
        "AdditionalFieldsOrder": (),
        "ProductRecommendationIds": (),
        "CommentIds": (),
        "TagDimensionsOrder": ()
      },
      {
        "Id": "129228166",
        "CID": "66aec0c2-04b0-57d2-aa9f-ac3b7ecb91df",
        "SourceClient": "sephora-fr",
        "Badges": {
          "loyaltyYes--Im-a-beauty-insider": {
            "ContentType": "REVIEW",
            "Id": "loyaltyYes--Im-a-beauty-insider",
            "BadgeType": "Custom"
          }
        },
        "BadgesOrder": (
          "loyaltyYes--Im-a-beauty-insider"
        ),
        "LastModeratedTime": "2019-06-12T00:15:07.000+00:00",
        "LastModificationTime": "2020-02-07T10:11:38.000+00:00",
        "ProductId": "P3742199",
        "CampaignId": "BV_REVIEW_DISPLAY",
        "ContextDataValuesOrder": (
          "Gender",
          "Age",
          "Eyes",
          "Skin"
        ),
        "UserLocation": "Bayeux",
        "AuthorId": "78051240",
        "ContentLocale": "fr_FR",
        "IsFeatured": false,
        "InappropriateFeedbackList": (
          {
            "AuthorId": "ztn5x2jvnf5u8llq2jagt7j4mp",
            "SubmissionTime": "2019-06-11T23:12:44.000+00:00"
          },
          {
            "AuthorId": "zpebdw7hh48w5zpr3778nx2hgg",
            "SubmissionTime": "2019-06-06T23:20:57.000+00:00"
          },
          {
            "AuthorId": "zkvy1qeaaz8s2znk6kesfg3dnb",
            "SubmissionTime": "2019-06-03T20:01:34.000+00:00"
          }
        ),
        "TotalInappropriateFeedbackCount": {
          "$numberInt": "3"
        },
        "TotalClientResponseCount": {
          "$numberInt": "0"
        },
        "TotalCommentCount": {
          "$numberInt": "0"
        },
        "Rating": {
          "$numberInt": "5"
        },
        "IsRatingsOnly": false,
        "IsRecommended": true,
        "Helpfulness": {
          "$numberDouble": "0.8999999761581421"
        },
        "TotalFeedbackCount": {
          "$numberInt": "40"
        },
        "TotalNegativeFeedbackCount": {
          "$numberInt": "4"
        },
        "TotalPositiveFeedbackCount": {
          "$numberInt": "36"
        },
        "ModerationStatus": "APPROVED",
        "SubmissionId": "halilss25hcanccb0yj6nxvpk",
        "SubmissionTime": "2019-06-03T11:43:04.000+00:00",
        "ReviewText": "Un parfum enivrant mais pas entêtant, la note de tête est exquise et très fraîche, parfaite pour l'été. Vous devriez vendre ce parfum dans plus de sephora et avec plus de stock!!",
        "Title": "Parfait pour l'été",
        "UserNickname": "Abraxas",
        "ContextDataValues": {
          "Age": {
            "Value": "18to24",
            "Id": "Age"
          },
          "Gender": {
            "Value": "Female",
            "Id": "Gender"
          },
          "Skin": {
            "Value": "Grasse",
            "Id": "Skin"
          },
          "Eyes": {
            "Value": "Bleus",
            "Id": "Eyes"
          }
        },
        "Videos": (),
        "Pros": null,
        "SecondaryRatings": {},
        "ClientResponses": (),
        "Photos": (),
        "Cons": null,
        "IsSyndicated": false,
        "SecondaryRatingsOrder": (),
        "AdditionalFields": {},
        "RatingRange": {
          "$numberInt": "5"
        },
        "TagDimensions": {},
        "AdditionalFieldsOrder": (),
        "ProductRecommendationIds": (),
        "CommentIds": (),
        "TagDimensionsOrder": ()
      }
    ),
    "HasErrors": false,
    "Errors": ()
  },
  "name": "L'Atelier des Subtils Eau d'Océan - Eau de toilette",
}

Pensaba a una causa como hacer un find_all con:

users = ('Jackobear')
collection.findall({'q2.Results.x.UserNickname' : {'$in': users}})

Pegar valor através de um formulário de criação rápida com JavaScript dynamics 365

No meu formulário principal do Dynamics 365 existe um campo chamado “origem.ele”. Nesse mesmo formulário eu tenho a opção de abrir um formulário de criação rápida, e nesse formulário de criação rápida preciso preencher um campo com o valor que está no campo “origem.ele” no formulário principal. Como faço isso usando JavaScript?

Preciso que no onload do meu formulário de criação rápida, meu JavaScript pegue o valor do campo no formulário principal e set no campo X do meu de criação rápida.

banco de dados – Adicionar um valor na coluna X igual ao valor da mesma coluna X de outra linha do mesmo arquivo

Na minha planilha a coluna ID ( são mais de 800 IDs) corresponde a uma armadilha que possui uma localização geográfica fixa (LAT, LONG). As armadilhas são vistoriadas semanalmente e com isso obtenho o número de fêmeas. A partir do mês 06 ano 2014 as colunas LAT e LONG estão vazias. Como faço para atualizar o banco de dados utilizando o valor que consta na coluna LAT/LONG em outra linha de mesmo ID?

Segue uma parte dos dados inserir a descrição da imagem aqui

php – PDODebuguer entrega valor corretamente mas ->execute() não!

me ajudem a entender o que é que estou deixando passar?

Em:

public function findClientDocument(string $document, string $password) : ?array{

    $sql = 'SELECT * FROM ' . $this->table . ' WHERE document = :document AND password = :password';
            
    $find =  $this->pdo->prepare ($sql);

    $find->bindValue(":document", $document);

    $find->bindValue(":password", $password);

        /// pdoDebugger para conferir

    $data = (
        'document' => $document,
        'password' => $password
    );

    var_dump ($this->pdoDebugger->show($sql, $data));

          /// fim do pdoDebugger para conferir

    $find->execute();
            
    echo "<br>";

    var_dump($find);
    
    return  $find->rowCount() === 0
                    ? NULL
                    : $find->fetch(PDO::FETCH_ASSOC);

}

O var_dump ($this->pdoDebugger->show($sql, $data)); entrega uma query que retorna valor corretamente, 1 registro.

string(74) “SELECT * FROM clients WHERE document = ‘99999999999’ AND password = ‘aaaa'”

Mas o $find->rowCount() retorna 0 registros.

Eis o var_dump();

object(PDOStatement)#92 (1) { (“queryString”)=> string(73) “SELECT * FROM clients WHERE document = :document AND password = :password” }

Buscar um valor em um objeto javascript, caso não encontrar, pegar o valor do próximo

Olá, a todos!

Tenho esse objeto em javascript:

const values = {
        100: 33.7, 102: 33.6, 104: 33.5, 106: 33.4, 108: 33.3, 110: 33.2, 112: 33.1, 115: 33, 117: 32.9
} 

Como podem ver, é um objeto cujos elementos não são sequenciais. Quando faço a busca por um valor que não existe, por exemplo 103, preciso recuperar o valor do próximo elemento, mas não estou conseguindo!

Alguém sabe se existe alguma forma de resolver esse problema?

Desde já agradeço.