Untitled

mail@pastecode.io avatar
unknown
javascript
7 months ago
2.5 kB
2
Indexable
Never
let vICMSDesonerado = 0,
    TaxaReducaoICMS = 0,
    CalcDesonerado = 0,
    vICMSDeson = 0,
    pFCP = 0,
    vProdTotal = 0;

if (fUFFilial === 'RJ' || fUFFilial === 'RS' || fUFFilial === 'MT') {
  if (_cdsItemcbenef.trim() !== '') {
    if (
      _cdsItemcst_csosn.substring(1, 3) === '20' ||
      _cdsItemcst_csosn.substring(1, 3) === '70' ||
      _cdsItemcst_csosn.substring(1, 3) === '90'
    ) {
      if (_cdsItemcst_csosn.substring(1, 3) === '20') {
        pFCP = parseFloat(_cdsItempfcp.replace(/[^0-9.-]+/g,""));
      } else {
        pFCP = parseFloat(_cdsItempfcpst.replace(/[^0-9.-]+/g,""));
      }

      vICMSDesonerado = (parseFloat(_cdsItemicms_aliquota.replace(/[^0-9.-]+/g,"")) + pFCP) / 100;
      TaxaReducaoICMS = 1 - (parseFloat(_cdsItemicms_reducao.replace(/[^0-9.-]+/g,"")) / 100);
      CalcDesonerado = vICMSDesonerado * TaxaReducaoICMS;
      CalcDesonerado = 1 - CalcDesonerado;
      vProdTotal =
        parseFloat(_cdsItemvalor_total.replace(/[^0-9.-]+/g,"")) +
        parseFloat(_cdsItemfrete.replace(/[^0-9.-]+/g,"")) +
        parseFloat(_cdsItemseguro.replace(/[^0-9.-]+/g,"")) +
        parseFloat(_cdsItemdespesas.replace(/[^0-9.-]+/g,""));
      CalcDesonerado =
        (vProdTotal * CalcDesonerado) / (1 - vICMSDesonerado);
      vICMSDeson = Math.round(CalcDesonerado - vProdTotal, 2);

      if (vICMSDeson === 0) {
        vICMSDeson = 0.001;
      }

      _cdsItemicms_deso_valor = vICMSDeson;
      _cdsItemicms_deso_motivo = '9';
    } else if (
      _cdsItemcst_csosn.substring(1, 3) === '30' ||
      _cdsItemcst_csosn.substring(1, 3) === '40' ||
      _cdsItemcst_csosn.substring(1, 3) === '41' ||
      _cdsItemcst_csosn.substring(1, 3) === '50'
    ) {
      pFCP = parseFloat(_cdsItempfcp.replace(/[^0-9.-]+/g,""));

      vICMSDesonerado =
        (parseFloat(_cdsItempicmsdeson.replace(/[^0-9.-]+/g,"")) + pFCP) / 100;
      vProdTotal =
        parseFloat(_cdsItemvalor_total.replace(/[^0-9.-]+/g,"")) +
        parseFloat(_cdsItemfrete.replace(/[^0-9.-]+/g,"")) +
        parseFloat(_cdsItemseguro.replace(/[^0-9.-]+/g,"")) +
        parseFloat(_cdsItemdespesas.replace(/[^0-9.-]+/g,""));
      vICMSDeson = Math.round(
        (vProdTotal / (1 - vICMSDesonerado)) * vICMSDesonerado,
        2
      );

      if (vICMSDeson === 0) {
        vICMSDeson = 0.001;
      }

      _cdsItemicms_deso_valor = vICMSDeson;
      _cdsItemicms_deso_motivo = '9';
    }
  }
}
Leave a Comment