Eu tenho uma rotina no projeto que se chama pendência, que eu consegui montar em PHP em 2020.
Aqui em 2024, tentei melhorar o código, mas havia tanta rotina repetida que achei melhor usar a tecnologia da classe. Geralmente, a gente separa o código da classe do código HTML, mas hoje tentei colocar HTML dentro da classe. Ele ainda está em fase de desenvolvimento, mas ele parece funcionar:
<?php
class pendencia
{private $mysqli;function __construct(){
$this->mysqli=new mysqli("localhost","root","","teste");}function dec($value){return($value)? number_format($value,2,',','.'):null;}function incluir($controles,$dados){foreach($dados as $dado)if(!in_array($dado['docto'],$controles)){
$docto=$dado['docto'];
$lcto=$dado['lcto'];
$this->mysqli->query("insert into tbcontacorrente (docto,lcto)
values ($docto,$lcto)");}}function inicio(){
$recebiveis=$this->mysqli->query("select * from tbdiario
where contad=130 and dia>'2023-12-31'")->fetch_all(MYSQLI_ASSOC);
$recebidos=$this->mysqli->query("select * from tbdiario
where contac=130 and dia>'2023-12-31'")->fetch_all(MYSQLI_ASSOC);
$pagaveis=$this->mysqli->query("select * from tbdiario
where contac=211 and dia>'2023-12-31'")->fetch_all(MYSQLI_ASSOC);
$pagos=$this->mysqli->query("select * from tbdiario
where contad=211 and dia>'2023-12-31'")->fetch_all(MYSQLI_ASSOC);
$controles=array_column($this->mysqli->query("select docto from tbcontacorrente")->fetch_all(MYSQLI_NUM),0);
$this->incluir($controles,$recebiveis);
$this->incluir($controles,$recebidos);
$this->incluir($controles,$pagaveis);
$this->incluir($controles,$pagos);
$controles=$this->mysqli->query("select * from tbcontacorrente
left join tbpessoa on tbpessoa.codp = tbcontacorrente.codp
join tbdiario on tbdiario.docto = tbcontacorrente.docto
where pgto=0 order by vcto")->fetch_all(MYSQLI_ASSOC);
$totalReceber=0;?><style>td {white-space: nowrap}</style><linkhref="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"rel="stylesheet"><tableclass='table table-striped table-sm m-auto'style=width:500px><trclass=fw-semibold><td>Vencimento<td>Docto<td>Lcto
<tdclass=text-end>Valor<td>Cliente<td>Histórico
<?php
foreach($controles as $c):
$hist=date('d/m/y',strtotime($c['dia']))." ".$c['hist'];
$totalReceber+=$c['valor'];?><tr><td><input type=date value='<?=$c['vcto']?>'>
<td><?=$c['docto']?><td><?=$c['lcto']?><tdclass=text-end><?=$this->dec($c['valor'])?><td><?=$c['pessoa']?><td><?=$hist?><?php endforeach;?><trclass=fw-semibold><tdcolspan=3>Total a receber<tdcolspan=3><?=$this->dec($totalReceber)?></table><?php
}}(new pendencia)->inicio();/* mysql
CREATE TABLE `tbdiario` (
`docto` mediumint NOT NULL AUTO_INCREMENT,
`dia` date DEFAULT NULL,
`hist` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`lcto` mediumint DEFAULT NULL,
`contad` mediumint DEFAULT NULL,
`contac` mediumint DEFAULT NULL,
`valor` decimal(13,2) DEFAULT NULL,
PRIMARY KEY (`docto`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
insert into tbdiario (dia,hist,lcto,contad,contac,valor) values
('2024-09-23','Magazine Luiza',1,130,304,12.00), ('2024-09-24','Mappin',2,130,304,500.00)
CREATE TABLE `tbcontacorrente` (
`docto` mediumint NOT NULL,
`vcto` date DEFAULT NULL,
`pgto` int DEFAULT '0',
`codp` mediumint DEFAULT NULL,
`lcto` mediumint DEFAULT NULL,
PRIMARY KEY (`docto`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
CREATE TABLE `tbpessoa` (
`codp` int NOT NULL AUTO_INCREMENT,
`pessoa` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`cnpj` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`end` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`tel` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`nota` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`updated_at` datetime NOT NULL,
`vinculo` tinyint NOT NULL,
PRIMARY KEY (`codp`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
*/
Pergunta
Frank K Hosaka
Eu tenho uma rotina no projeto que se chama pendência, que eu consegui montar em PHP em 2020.
Aqui em 2024, tentei melhorar o código, mas havia tanta rotina repetida que achei melhor usar a tecnologia da classe. Geralmente, a gente separa o código da classe do código HTML, mas hoje tentei colocar HTML dentro da classe. Ele ainda está em fase de desenvolvimento, mas ele parece funcionar:
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.