예제 #1
0
파일: BlocoE.php 프로젝트: dbemfica/S-Efd
 public function makeE210(Efd $efd, E200 $e200)
 {
     $bloco0 = $efd->bloco0;
     $blocoC = $efd->blocoC;
     $vC190 = array();
     if (!empty($blocoC->C100)) {
         foreach ($blocoC->C100 as $c100) {
             $codParticipanete = $c100->COD_PART;
             foreach ($bloco0->_0150 as $_0150) {
                 if ($_0150->COD_PART == $codParticipanete) {
                     $codMunicipio = $_0150->COD_MUN;
                     break;
                 }
             }
             $municipio = TCodMunicipio::buscaMunicipio($codMunicipio);
             if ($e200->UF == $municipio['uf']) {
                 foreach ($c100->C190 as $c190) {
                     $vC190[] = $c190;
                 }
             }
         }
     }
     $e210 = new E210();
     $e210->IND_MOV_ST = 0;
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //04 - VL_DEVOL_ST
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     $VL_DEVOL_ST = 0;
     if (!empty($vC190)) {
         foreach ($vC190 as $c190) {
             switch ($c190->CFOP) {
                 case "1410":
                 case "1411":
                 case "1414":
                 case "1415":
                 case "1660":
                 case "1661":
                 case "1662":
                 case "2410":
                 case "2411":
                 case "2414":
                 case "2415":
                 case "2660":
                 case "2661":
                 case "2662":
                     $VL_DEVOL_ST += $c190->VL_ICMS_ST;
                     break;
             }
         }
     }
     $e210->VL_DEVOL_ST = $VL_DEVOL_ST;
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //05 - VL_RESSARC_ST
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     $VL_RESSARC_ST = 0;
     if (!empty($vC190)) {
         foreach ($vC190 as $c190) {
             switch ($c190->CFOP) {
                 case "1603":
                 case "2603":
                     $VL_RESSARC_ST += $c190->VL_ICMS_ST;
                     break;
             }
         }
     }
     $e210->VL_RESSARC_ST = $VL_RESSARC_ST;
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //06 - VL_OUT_CRED_ST
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     $VL_OUT_CRED_ST = 0;
     if (!empty($vC190)) {
         foreach ($vC190 as $c190) {
             $cfop = substr($c190->CFOP, 0, 1);
             switch ($cfop) {
                 case 1:
                 case 2:
                     if ($c190->CFOP != '1410' && $c190->CFOP != '1411' && $c190->CFOP != '1414' && $c190->CFOP != '1415' && $c190->CFOP != '1660' && $c190->CFOP != '1661' && $c190->CFOP != '1662' && $c190->CFOP != '2410' && $c190->CFOP != '2411' && $c190->CFOP != '2414' && $c190->CFOP != '2415' && $c190->CFOP != '2660' && $c190->CFOP != '2661' && $c190->CFOP != '2662') {
                         $VL_OUT_CRED_ST += $c190->VL_ICMS_ST;
                     }
                     break;
             }
         }
     }
     $e210->VL_OUT_CRED_ST = $VL_OUT_CRED_ST;
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //07 - VL_OUT_CRED_ST
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     $VL_AJ_CREDITOS_ST = 0;
     $e210->VL_AJ_CREDITOS_ST = $VL_AJ_CREDITOS_ST;
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //08 - VL_RETENÇAO_ST
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     $VL_RETENCAO_ST = 0;
     $e210->VL_RETENCAO_ST = $VL_RETENCAO_ST;
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //09 - VL_OUT_DEB_ST
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     $VL_OUT_DEB_ST = 0;
     $e210->VL_OUT_DEB_ST = $VL_OUT_DEB_ST;
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //10 - VL_AJ_DEBITOS_ST
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     $VL_AJ_DEBITOS_ST = 0;
     $e210->VL_AJ_DEBITOS_ST = $VL_AJ_DEBITOS_ST;
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //11 - VL_SLD_DEV_ANT_ST
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     $VL_SLD_DEV_ANT_ST = 0;
     $e210->VL_SLD_DEV_ANT_ST = $VL_SLD_DEV_ANT_ST;
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //12 - VL_DEDUÇÕES_ST
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     $VL_DEDUCOES_ST = 0;
     $e210->VL_DEDUCOES_ST = $VL_DEDUCOES_ST;
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //13 - VL_ICMS_RECOL_ST
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     $VL_ICMS_RECOL_ST = 0;
     $e210->VL_ICMS_RECOL_ST = $VL_ICMS_RECOL_ST;
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //14 - VL_ICMS_RECOL_ST
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     $VL_SLD_CRED_ST_TRANSPORTAR = 0;
     $e210->VL_SLD_CRED_ST_TRANSPORTAR = $VL_SLD_CRED_ST_TRANSPORTAR;
     $espressao = $e210->VL_RETENCAO_ST + $e210->VL_OUT_DEB_ST + $e210->VL_AJ_DEBITOS_ST - $e210->VL_SLD_CRED_ANT_ST - $e210->VL_DEVOL_ST - $e210->VL_RESSARC_ST - $e210->VL_OUT_CRED_ST - $e210->VL_AJ_CREDITOS_ST;
     if ($espressao >= 0) {
         $e210->VL_SLD_CRED_ST_TRANSPORTAR = 0;
     } else {
         $e210->VL_SLD_CRED_ST_TRANSPORTAR = $espressao * -1;
     }
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //15 - DEB_ESP_ST
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     $DEB_ESP_ST = 0;
     $e210->DEB_ESP_ST = $DEB_ESP_ST;
     $this->addE210($e210);
 }