/******************************************/ /* Ident.Regras: CPA 501TCPAI01 */ /* Objetivo: título depois inserir CP */ /******************************************/ Definir cursor Cur_E001TNS_531; Definir cursor Cur_T000TPT_531; Definir cursor Cur_E055PAR_531; Definir cursor Cur_E661GRI_531; Definir cursor Cur_E661GRI_531a; Definir numero VSCodFil; Definir numero VSCodFor; Definir numero VSVlrOri; Definir alfa VSCodTns; Definir alfa VSCodTpt; Definir alfa VSNumTit; Definir alfa VSObsTcp; Definir alfa VSSitTit; Definir alfa aCodImp; Definir alfa xVlrCmp; Definir alfa aMsgErr; Definir alfa aOriCha; Definir alfa aObsReg; Definir alfa aVarAux; Definir alfa aVarAux2; Definir data VSDatEnt; Definir data VSVctOri; Definir data dDatGer; Definir data dDatZer; Definir data dVarAux; /* empresa logada */ nCodEmp =EmpAtu; nCodReg =531; Inicio Cur_E001TNS_531.SQL "Select CodTns \ from E001TNS \ where CodEmp =:nCodEmp \ and CodTns =:VSCodTns \ and LisMod ='CPE'"; Cur_E001TNS_531.AbrirCursor(); Se (Cur_E001TNS_531.Achou) Inicio Se ((VSNumNfc =0) e (VSNumNfv =0) e (VSGriSeq =0) e (VSSitTit <> "AI")) Inicio /* geração */ nUsuGer =GerCodUsu; nHorGer =HorSis; dDatGer =DatSis; nQtdFor =0; dDatZer =0; /* código imposto e guia */ Cur_E055PAR_531.SQL "Select E055PAR.CodImp, \ E055PAR.CodGri, \ E051IMP.TipImp \ from E055PAR, \ E051IMP \ where E055PAR.CodEmp =:nCodEmp \ and E055PAR.CodFil =:VSCodFil \ and E055PAR.PagFor =:VSCodFor \ AND E055PAR.Pagtti =:VSCodTpt \ and E055PAR.CodGri >0 \ and E051IMP.CodImp =E055PAR.CodImp"; Cur_E055PAR_531.AbrirCursor(); Enquanto(Cur_E055PAR_531.Achou) Inicio nQtdFor++; nCodGri =Cur_E055PAR_531.CodGri; nTipImp =Cur_E055PAR_531.TipImp; aCodImp =Cur_E055PAR_531.CodImp; Cur_E055PAR_531.Proximo(); Fim; Cur_E055PAR_531.FecharCursor(); Se (nQtdFor >1) Inicio IntParaAlfa(VSCodFor,aVarAux); aVarAux = "O fornecedor: " + aVarAux + " está associado a mais de um imposto, portanto não é permitido gerar a guia de recolhimento."; GeraLog(aVarAux); Fim; /* gerar guia */ Se ((aCodImp <> "") e (nCodGri >0)) Inicio Cur_E661GRI_531.SQL "Select SeqLct \ from E661GRI \ where CodEmp =:nCodEmp \ and CodFil =:VSCodFil \ and CodTpt =:VSCodTpt \ and NumTit =:VSNumTit \ and CodFor =:VSCodFor \ and CodImp =:aCodImp"; Cur_E661GRI_531.AbrirCursor(); Se (Cur_E661GRI_531.NaoAchou) Inicio Cur_E661GRI_531a.SQL "Select SeqLct \ from E661GRI \ where CodEmp =:nCodEmp \ and CodFil =:VSCodFil \ and DatApi =:VSDatEnt \ and CodImp =:aCodImp \ order by SeqLct desc"; Cur_E661GRI_531a.AbrirCursor(); Se (Cur_E661GRI_531a.Achou) nSeqLct =Cur_E661GRI_531a.SeqLct +1; Senao nSeqLct =1; Cur_E661GRI_531a.FecharCursor(); ExecSQL "insert into E661GRI (CodEmp,CodFil,CodImp,DatApi,SeqLct,CodGri,ConMer,DocOri,NumPar,VlrPri, \ VlrAtu,VlrJur,VlrMul,VlrRec,ObsGr1,ObsGr2,ObsGr3,DatPag,CodBan,CodAge, \ AutBan,DatVct,MesAno,IndGer,ModSis,SitReg,NumTit,CodTpt,CodFor,UsuGer, \ DatGer,HorGer,UsuAtu,DatAtu,HorAtu,ForNfc,SnfNfc,NumNfc,SnfNfv,NumNfv) values \ (:nCodEmp,:VSCodFil,:aCodImp,:VSDatEnt,:nSeqLct,:nCodGri,' ',' ',' ',:VSVlrOri, \ 0,0,0,0,' ',' ',' ',:dDatZer,' ',' ', \ ' ',:VSVctOri,:VSDatEnt,'C','CPA',' ',:VSNumTit,:VSCodTpt,:VSCodFor,:nUsuGer, \ :dDatGer,:nHorGer,0,:dDatzer,0,0,' ',0,' ',0)"; ExecSQL "update E501TCP \ set GriFil =:VSCodFil, \ GriImp =:aCodImp, \ GriApi =:VSDatEnt, \ GriSeq =:nSeqLct \ where CodEmp =:nCodEmp \ and CodFil =:VSCodFil \ and NumTit =:VSNumTit \ and CodTpt =:VSCodTpt \ and CodFor =:VSCodFor"; Fim; Cur_E661GRI_531.FecharCursor(); Fim; Fim; Fim; Fim; Cur_E001TNS_531.FecharCursor();