fix correction fec DV
This commit is contained in:
parent
bd62810b7b
commit
398f411773
@ -2279,9 +2279,7 @@ class PageController extends Controller
|
||||
|
||||
private function refreshFEC()
|
||||
{
|
||||
|
||||
$current_config = json_decode($this->myDb->getConfiguration($this->idNextcloud));
|
||||
|
||||
$clean_folder = html_entity_decode($current_config[0]->path).'/';
|
||||
|
||||
try {
|
||||
@ -2292,6 +2290,11 @@ class PageController extends Controller
|
||||
foreach ($factures as $key => $facture) {
|
||||
$factureIsSingle = $facture->facture_type == FactureTypeConstant::TYPE_SINGLE;
|
||||
|
||||
// Logique TVA : si tva = 0 alors 0%, si tva = 1 alors taux par défaut
|
||||
$tva_rate = 0; // Par défaut
|
||||
if (isset($facture->tva) && $facture->tva == 1) {
|
||||
$tva_rate = isset($current_config[0]->tva_default) ? floatval($current_config[0]->tva_default) : 0;
|
||||
}
|
||||
|
||||
$facture_temp = array(
|
||||
'num' => $facture->num,
|
||||
@ -2301,41 +2304,27 @@ class PageController extends Controller
|
||||
'date_facture' => $facture->date_paiement,
|
||||
'defunt' => $facture->nom_defunt,
|
||||
'montant_htc' => 0,
|
||||
'tva' => $current_config[0]->tva_default,
|
||||
'tva' => $tva_rate, // Utiliser le taux calculé
|
||||
'montant_tva' => 0,
|
||||
'montant_ttc' => 0,
|
||||
);
|
||||
|
||||
if($factureIsSingle) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$produits = json_decode($this->getProduitsById($facture->id_devis));
|
||||
foreach ($produits as $key => $produit) {
|
||||
$htPrice = $produit->prix_unitaire;
|
||||
$htPrice = isset($produit->prix_unitaire) ? floatval($produit->prix_unitaire) : 0;
|
||||
if($facture->fk_client_group_id != null || $facture->fk_client_group_id != 0) {
|
||||
$price = $this->myDb->getProductPriceByClientGroupId($facture->fk_client_group_id, $produit->id);
|
||||
if($price != null) {
|
||||
$htPrice = $price;
|
||||
$htPrice = floatval($price);
|
||||
}
|
||||
}
|
||||
$facture_temp['montant_htc'] += $htPrice * $produit->quantite;
|
||||
$quantite = isset($produit->quantite) ? floatval($produit->quantite) : 0;
|
||||
$facture_temp['montant_htc'] += $htPrice * $quantite;
|
||||
};
|
||||
$facture_temp['montant_tva'] = ($facture_temp['montant_htc'] * $facture_temp['tva']) / 100;
|
||||
$facture_temp['montant_ttc'] = $facture_temp['montant_tva'] + $facture_temp['montant_htc'];
|
||||
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
|
||||
$devis = $this->myDb->getDevisByFkFactureId($facture->id);
|
||||
$factureGroupIsRelatedToAnyDevis = $devis != null;
|
||||
$mentionFilters = [
|
||||
@ -2343,7 +2332,6 @@ class PageController extends Controller
|
||||
DevisMentionConstant::FACTURED_FORMATTED
|
||||
];
|
||||
|
||||
|
||||
$isFactureGroupForSingleClient = $facture->facture_client_id != null && $facture->facture_client_id != 0;
|
||||
if($isFactureGroupForSingleClient) {
|
||||
$facture_temp["client"] = $facture->facture_client_entreprise;
|
||||
@ -2379,29 +2367,17 @@ class PageController extends Controller
|
||||
}
|
||||
|
||||
foreach($devisList as $currentDevis) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$produits = json_decode($this->getProduitsById($currentDevis['id']));
|
||||
foreach ($produits as $key => $produit) {
|
||||
$htPrice = $produit->prix_unitaire;
|
||||
$htPrice = isset($produit->prix_unitaire) ? floatval($produit->prix_unitaire) : 0;
|
||||
if($currentDevis["fk_client_group_id"] != null || $currentDevis["fk_client_group_id"] != 0) {
|
||||
$price = $this->myDb->getProductPriceByClientGroupId($currentDevis["fk_client_group_id"], $produit->id);
|
||||
if($price != null) {
|
||||
$htPrice = $price;
|
||||
$htPrice = floatval($price);
|
||||
}
|
||||
}
|
||||
$facture_temp['montant_htc'] += $htPrice * $produit->quantite;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$quantite = isset($produit->quantite) ? floatval($produit->quantite) : 0;
|
||||
$facture_temp['montant_htc'] += $htPrice * $quantite;
|
||||
};
|
||||
}
|
||||
$facture_temp['montant_tva'] = ($facture_temp['montant_htc'] * $facture_temp['tva']) / 100;
|
||||
@ -2410,6 +2386,7 @@ class PageController extends Controller
|
||||
|
||||
array_push($data_factures, $facture_temp);
|
||||
};
|
||||
|
||||
$data_temp = array();
|
||||
foreach ($data_factures as $key => $facture) {
|
||||
$datesplit = explode('-', $facture['date_facture']);
|
||||
@ -2423,7 +2400,7 @@ class PageController extends Controller
|
||||
}
|
||||
}
|
||||
}
|
||||
// var_dump($data_temp);
|
||||
|
||||
//parcours annee
|
||||
foreach ($data_temp as $key_annee => $annee) {
|
||||
//parcours annee
|
||||
@ -2435,8 +2412,8 @@ class PageController extends Controller
|
||||
|
||||
foreach ($annee as $key_mois => $mois) {
|
||||
$fec_temp_txt = 'Code journal'.TAB1.utf8_decode('Date écriture').TAB1.'Code compte'.TAB1.utf8_decode('Intitulé compte').TAB1.utf8_decode('Pièce').TAB1.utf8_decode('Libellé écriture').TAB1.utf8_decode('Débit origine').TAB1.utf8_decode('Crédit origine').TAB1.utf8_decode('Débit euro').TAB1.utf8_decode('Crédit euro').TAB1.'Lettrage'.TAB1.'Lettrage n+1'.TAB1.'Lettrage partiel'.TAB1.'Monnaie'.TAB1.'ISO Monnaie'.TAB1.'taux change'.TAB1.'Section analytique 1'.TAB1.'Section analytique 2'.TAB1.'Section analytique 3'.PHP_EOL.PHP_EOL;
|
||||
// $fec_temp = 'NUMERO'.';'.'CLIENT'.';'.'DEFUNT'.';'.'DATE'.';'.'MONTANTHTC'.';'.'TVA'.';'.'MONTANTTVA'.';'.'MONTANTTTC'."\n";
|
||||
$fec_temp = 'Code journal'.';'.utf8_decode('Date écriture').';'.'Code compte'.';'.utf8_decode('Intitulé compte').';'.utf8_decode('Pièce').';'.utf8_decode('Libellé écriture').';'.utf8_decode('Débit origine').';'.utf8_decode('Crédit origine').';'.utf8_decode('Débit euro').';'.utf8_decode('Crédit euro').';'.'Lettrage'.';'.'Lettrage n+1'.';'.'Lettrage partiel'.';'.'Monnaie'.';'.'ISO Monnaie'.';'.'taux change'.';'.'Section analytique 1'.';'.'Section analytique 2'.';'.'Section analytique 3'."\n\n";
|
||||
|
||||
foreach ($mois as $key => $facture) {
|
||||
$fec_temp_txt = $fec_temp_txt.'VT'.TAB1.$facture['date_facture'].TAB1.$facture['client'].TAB1.$facture['client'].TAB1.$facture['num'].TAB1.$facture['nom_client'].TAB1.$facture['montant_ttc'].TAB1.'0'.TAB1.$facture['montant_htc'].TAB1.'0'.TAB1.''.TAB1.'FAUX'.TAB1.'FAUX'.TAB1.'E'.TAB1.''.TAB1.'1'.TAB1.''.TAB1.''.TAB1.''.PHP_EOL.PHP_EOL;
|
||||
$fec_temp_txt = $fec_temp_txt.'VT'.TAB1.$facture['date_facture'].TAB1.'706000'.TAB1.'VENTES DE MARCHANDISES'.TAB1.$facture['num'].TAB1.$facture['client'].TAB1.'0'.TAB1.$facture['montant_htc'].TAB1.'0'.TAB1.$facture['montant_htc'].TAB1.''.TAB1.'FAUX'.TAB1.'FAUX'.TAB1.'E'.TAB1.''.TAB1.'1'.TAB1.''.TAB1.''.TAB1.''.PHP_EOL.PHP_EOL;
|
||||
@ -2446,6 +2423,7 @@ class PageController extends Controller
|
||||
$fec_temp = $fec_temp.'VT'.';'.$facture['date_facture'].';706000;VENTES DE MARCHANDISES;'.$facture['num'].';'.$facture['client'].';0;'.$facture['montant_htc'].';0;'.$facture['montant_htc'].';'.''.';'.'FAUX'.';'.'FAUX'.';'.'E'.';'.''.';'.'1'.';'.''.';'.''.';'.''."\n\n";
|
||||
$fec_temp = $fec_temp.'VT'.';'.$facture['date_facture'].';445710;;'.$facture['num'].';'.$facture['client'].';;'.$facture['montant_tva'].';;'.$facture['montant_tva'].";;;;;;;;;\n\n";
|
||||
}
|
||||
|
||||
$ff = $_clean_folder.'FEC_'.$key_mois.'_'.$key_annee.'.csv';
|
||||
$this->storage->newFile($ff);
|
||||
$file = $this->storage->get($ff);
|
||||
@ -2455,19 +2433,16 @@ class PageController extends Controller
|
||||
$this->storage->newFile($ff_txt);
|
||||
$file_txt = $this->storage->get($ff_txt);
|
||||
$file_txt->putContent($fec_temp_txt);
|
||||
// $file->putContent(implode(';', array('Jane Smith', 'janesmith@example.com', '555-5678')) . "\n");
|
||||
}
|
||||
}
|
||||
|
||||
} catch(\OCP\Files\NotFoundException $e) {
|
||||
}
|
||||
|
||||
|
||||
} catch(\OCP\Files\NotPermittedException $e) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function signatureImageExists(string $signatureImageName)
|
||||
{
|
||||
|
||||
|
||||
@ -488,6 +488,15 @@ class Bdd
|
||||
client.adresse as adresse_cli,client.mail as mail_cli,
|
||||
client.telephone as telephone_cli,client.legal_one as legalone_cli,
|
||||
client.fk_client_group_id as fk_client_group_id,
|
||||
|
||||
COALESCE(
|
||||
client.is_tva,
|
||||
CASE
|
||||
WHEN facture.fk_client_group_facturation_id IS NOT NULL THEN client_group_tva.is_tva
|
||||
ELSE facture_client.is_tva
|
||||
END
|
||||
) as tva,
|
||||
|
||||
defunt.id as id_defunt,
|
||||
defunt.nom as nom_defunt,
|
||||
lieu.id as lid,
|
||||
@ -502,6 +511,7 @@ class Bdd
|
||||
LEFT JOIN ".$this->tableprefix."facture_status as facture_status on facture.fk_facture_status_key = facture_status.facture_status_key
|
||||
LEFT JOIN ".$this->tableprefix."client as facture_client on facture.fk_client_id = facture_client.id
|
||||
LEFT JOIN ".$this->tableprefix."client_group_facturation as facture_client_group_facturation on facture.fk_client_group_facturation_id = facture_client_group_facturation.id
|
||||
LEFT JOIN ".$this->tableprefix."client as client_group_tva on facture.fk_client_group_facturation_id = client_group_tva.fk_client_group_facturation_id
|
||||
ORDER BY facture.id DESC, facture.date_paiement DESC";
|
||||
$result = $this->execSQL($sql, array());
|
||||
return $result;
|
||||
@ -5510,21 +5520,22 @@ COMMENTAIRES: ".$comment;
|
||||
return $devisList;
|
||||
}
|
||||
|
||||
public function getDevisIdsGroupByFactureId($factureId,$mentionFilters = []){
|
||||
public function getDevisIdsGroupByFactureId($factureId, $mentionFilters = [])
|
||||
{
|
||||
$sql = "SELECT devis.id
|
||||
FROM ".$this->tableprefix."devis as devis
|
||||
WHERE devis.fk_facture_id = ? ";
|
||||
|
||||
$conditions = [$factureId];
|
||||
if(!empty($mentionFilters)){
|
||||
if(!empty($mentionFilters)) {
|
||||
$mentionsFilterPlaceholders = implode(',', array_fill(0, count($mentionFilters), '?'));
|
||||
$sql .= " AND devis.mentions IN ($mentionsFilterPlaceholders)";
|
||||
$conditions = array_merge($conditions, $mentionFilters);
|
||||
}
|
||||
$sql.= ";";
|
||||
$devisList = $this->execSQLNoJsonReturn($sql,$conditions);
|
||||
$sql .= ";";
|
||||
$devisList = $this->execSQLNoJsonReturn($sql, $conditions);
|
||||
$devisIds = [];
|
||||
foreach($devisList as $devis){
|
||||
foreach($devisList as $devis) {
|
||||
$devisIds[] = $devis['id'];
|
||||
}
|
||||
return $devisIds;
|
||||
@ -6093,7 +6104,7 @@ COMMENTAIRES: ".$comment;
|
||||
private function getProductsTotalPrices($products)
|
||||
{
|
||||
$configs = json_decode($this->getConfiguration(BddConstant::DEFAULT_ADMIN_ID_NEXTCLOUD));
|
||||
$currentConfig = $configs[0];
|
||||
$currentConfig = $configs[0];
|
||||
$totalHt = 0;
|
||||
$totalTtc = 0;
|
||||
foreach ($products as $product) {
|
||||
@ -6109,11 +6120,12 @@ COMMENTAIRES: ".$comment;
|
||||
];
|
||||
}
|
||||
|
||||
private function getDevisIdsListByFactureId($factureId){
|
||||
private function getDevisIdsListByFactureId($factureId)
|
||||
{
|
||||
$factureData = $this->getFactureByFactureId(factureId: $factureId);
|
||||
$isFactureGroupOfDevis = $factureData["facture_type"] == FactureTypeConstant::TYPE_GROUP;
|
||||
$factureDevisIdsList = [];
|
||||
if($isFactureGroupOfDevis){
|
||||
if($isFactureGroupOfDevis) {
|
||||
$isFactureForSingleClient = $factureData['fk_client_id'] != null && $factureData['fk_client_id'] != 0;
|
||||
$devisMentionFilters = [
|
||||
DevisMentionConstant::FACTURED_FORMATTED,
|
||||
@ -6122,24 +6134,25 @@ COMMENTAIRES: ".$comment;
|
||||
$devis = $this->getDevisByFkFactureId($factureId);
|
||||
$factureGroupIsRelatedToAnyDevis = $devis != null;
|
||||
if (!$factureGroupIsRelatedToAnyDevis) {
|
||||
if($isFactureForSingleClient){
|
||||
if($isFactureForSingleClient) {
|
||||
$factureDevisIdsList = $this->getDevisIdsByClientIdAndMonthYear(
|
||||
$factureData['fk_client_id'],
|
||||
$factureData['month'],
|
||||
$factureData['year'],$devisMentionFilters
|
||||
$factureData['year'],
|
||||
$devisMentionFilters
|
||||
);
|
||||
}else{
|
||||
} else {
|
||||
$factureDevisIdsList = $this->getDevisIdsByClientGroupFacturationIdAndMonthYear(
|
||||
$factureData['fk_client_group_facturation_id'],
|
||||
$factureData['month'],
|
||||
$factureData['year'],$devisMentionFilters
|
||||
$factureData['month'],
|
||||
$factureData['year'],
|
||||
$devisMentionFilters
|
||||
);
|
||||
}
|
||||
}else{
|
||||
$factureDevisIdsList = $this->getDevisIdsGroupByFactureId($factureId, $devisMentionFilters );
|
||||
} else {
|
||||
$factureDevisIdsList = $this->getDevisIdsGroupByFactureId($factureId, $devisMentionFilters);
|
||||
}
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
$factureDevisIdsList = $factureData['id_devis'] ? [$factureData['id_devis']] : [];
|
||||
}
|
||||
return $factureDevisIdsList;
|
||||
@ -6151,8 +6164,8 @@ COMMENTAIRES: ".$comment;
|
||||
$totalHt = 0;
|
||||
$totalTtc = 0;
|
||||
$tva = 0;
|
||||
foreach($factureDevisIds as $devisId){
|
||||
$clientTvaStatus = $this->getClientTvaStatus($devisId,BddConstant::DEFAULT_ADMIN_ID_NEXTCLOUD);
|
||||
foreach($factureDevisIds as $devisId) {
|
||||
$clientTvaStatus = $this->getClientTvaStatus($devisId, BddConstant::DEFAULT_ADMIN_ID_NEXTCLOUD);
|
||||
$products = $this->getDevisProduits($devisId);
|
||||
$totalPrices = $this->getProductsTotalPrices($products);
|
||||
$totalHt += $totalPrices["total_ht"];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user