You are on page 1of 26

1 #INCLUDE "Acda080.

ch"
2 #include "Protheus.ch"
3
4 /*
5 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
6 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
7 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
8 ±±³Fun‡„o ³ ACDA080 ³ Autor ³ Anderson Rodrigues ³ Data ³ 21/08/02 ³±±
9 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
10 ±±³Descri‡„o ³ Tabela de Monitoramento da Producao ³±±
11 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
12 ±±³Parametros³ Nenhum ³±±
13 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
14 ±±³Uso ³ SIGAACD ³±±
15 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
16 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
17 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
18 */
19 Function ACDA080()
20 Private oTempTable := Nil
21 Private cArqTrab
22 Private cOperador := CBRETOPE()
23 Private cCadastro := STR0001 //"Monitoramento da Producao"
24 Private cTM := GetMV("MV_TMPAD")
25 Private cProduto := Space(Len(SC2->C2_PRODUTO))
26 Private cLocPad := Space(Len(SC2->C2_LOCAL)) //Usado na rotina RF ACDV023
27 Private cRoteiro := Space(Len(SC2->C2_ROTEIRO))
28 Private cUltOper := Space(Len(CBH->CBH_OPERAC))
29 Private cPriOper := Space(Len(CBH->CBH_OPERAC))
30 Private cUltApont := " "
31 Private cApontAnt := " "
32 Private cTipIni := "1"
33 Private nQtdOP := 0
34 Private nSldOPer := 0
35 Private lConjunto := .f.
36 Private lFimIni := .f.
37 Private lAutAskUlt := .f.
38 Private lVldOper := .f.
39 Private lRastro := GetMV("MV_RASTRO") == "S" // Verifica se utiliza controle de
Lote
40 Private lSGQTDOP := GetMV("MV_SGQTDOP") == "1" // Sugere quantidade no inicio e no
apontamento da producao
41 Private lInfOpe := .f. // Validacao no X3_When do Operador
42 Private lInfQeIni := GetMV("MV_INFQEIN") == "1" // Verifica se deve informar a
quantidade no inicio da Operacao
43 Private lCBAtuemp := GetMV("MV_CBATUD4") == "1" // Verifica se ajusta o empenho no
inicio da producao
44 Private lVldQtdOP := GetMV("MV_CBVQEOP") == "1" // Valida no inicio da operacao a
quantidade informada com o saldo a produzir da mesma
45 Private lVldQtdIni := GetMV("MV_CBVLAPI") == "1" // Valida a quantidade do
apontamento com a quantidade informada no inicio da Producao
46 Private lCfUltOper := GetMV("MV_VLDOPER") == "S" // Verifica se tem controle de
operacoes
47 Private lMod1 := Nil
48 Private lMsHelpAuto:= .f.
49 Private lMSErroAuto:= .f.
50 Private lPerdInf := .F.
51 Private aOperadores:= {}
52 Private aRotina := Menudef()
53
54 AtivaF12(.F.)
55
56 CBH->(DbSetOrder(3))
57
58 aCores := { { "ACDA080CLR(1)","ENABLE" },;
59 { "ACDA080CLR(2)","BR_AMARELO" },;
60 { "ACDA080CLR(3)","BR_LARANJA" },;
61 { "ACDA080CLR(4)","BR_AZUL" },;
62 { "ACDA080CLR(5)","BR_MARRON" },;
63 { "ACDA080CLR(6)","DISABLE" } }
64
65 If Empty(cOperador)
66 MsgAlert(STR0075+Alltrim(Substr(cUsuario,7,15))+STR0076) //"Operador referente
ao usuario "###" nao cadastrado, Verifique !!!"
67 Return .F.
68 EndIf
69
70 If Empty(cTM)
71 MsgAlert(STR0077) //"Informe o tipo de movimentacao padrao - MV_TMPAD"
72 Return .f.
73 EndIf
74
75 If !lRastro .and. lCBAtuemp
76 MsgAlert(STR0078) //"O parametro MV_CBATUD4 so deve ser ativado quando o sistema
controlar rastreabilidade, Verifique !!!"
77 Return .F.
78 EndIf
79
80 If (lVldQtdOP .or. lVldQtdIni .or. lCBAtuemp) .and. !lInfQeIni
81 MsgAlert(STR0079) //"O parametro MV_INFQEIN deve ser ativado, verifique !!!"
82 Return .F.
83 EndIf
84
85 //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
86 //³ Ativa tecla F12 para acionar perguntas ³
87 //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
88
89 SetKey(VK_F12,{||AtivaF12(.T.)})
90 mBrowse( 6, 1, 22, 75, "CBH", , , , , , aCores, , , ,{|x|TimerBrw(x)})
91 SetKey(VK_F12,Nil)
92 Return
93
94 /*
95 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
96 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
97 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
98 ±±³Fun‡ao ³ AtivaF12 ³ Autor ³ Anderson Rodrigues ³ Data ³ 30/04/04 ³±±
99 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
100 ±±³Descri‡…o ³ Executa a Funcao da Pergunte ³±±
101 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
102 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
103 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
104 */
105 Static Function AtivaF12(lPergunte)
106 Pergunte("ACDB80",lPergunte)
107 lMod1:= MV_PAR01 == 1
108 Return
109
110 /*
111 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
112 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
113 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
114 ±±³Fun‡„o ³ ACDA080A ³ Autor ³ Anderson Rodrigues ³ Data ³ 25/09/02 ³±±
115 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
116 ±±³Descri‡„o ³ Manutencao das opcoes de inclusao/alteracao/exclusao ³±±
117 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
118 ±±³Uso ³ SIGAACD ³±±
119 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
120 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
121 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
122 */
123
124 Function ACDA080A(cAlias,nReg,nOpc)
125
126 Local aCpsUsu := {}
127 Local aAreaTmp := GetArea()
128 Local cUltApont := ""
129 local cLote := Space(10)
130 Local dValid := ctod('')
131 Local nOpcao := 0
132 Local lOPEncerrada:= OPInfo(CBH_OP,2)
133 Local aObjects := {}
134 Local aSize := {}
135 Local aInfo := {}
136 Local aStruCBH := {}
137 Local nX
138
139 Private cTitulo := STR0001 //"Monitoramento da Producao"
140 Private aTrocaF3 := {}
141 Private oEnchoice
142
143 If !Empty(CBH->CBH_OP)
144 cUltApont:= CB023UH6(CBH->CBH_OP) // Ultima Operacao apontada no SH6
145 EndIf
146 //--Para tratar campos de usuario
147 aStruCBH := FWFormStruct(3, "CBH")[3]
148 For nX := 1 To Len(aStruCBH)
149 If GetSx3Cache(aStruCBH[nX,1], "X3_PROPRI") == 'U' .and.
GetSx3Cache(aStruCBH[nX,1], "X3_CONTEXT") <> 'V' ;
150 .And. aStruCBH[nX, 1] != "CBH_DTAPON" // Proteção para release 12.1.23 para
não tratar CBH_DTAPONT como campo de usuário
151 aAdd(aCpsUsu,AllTrim(GetSx3Cache(aStruCBH[nX,1], "X3_CAMPO")))
152 EndIf
153 Next nX
154
155 RestArea(aAreaTmp)
156
157 If lMod1
158 aTrocaF3:={{"CBH_OP","SH8"}}
159 Else
160 aTrocaF3:={{"CBH_OP","SC2"}}
161 EndIf
162
163 If nOpc == 4 // alteracao
164 If CBH->CBH_TIPO # "2" .and. CBH->CBH_TIPO # "3"
165 MsgAlert(STR0009) //"Somente e permitido a alteracao de registros de
monitoramento do tipo pausa"###"Alteracao nao permitida"
166 Return .f.
167 ElseIf !Empty(CBH->CBH_HRIMAP)
168 MsgAlert(STR0011) //"Este registro de monitoramento nao pode ser alterado
pois ja gerou movimentacoes no sistema"###"Alteracao nao permitida"
169 Return .f.
170 EndIf
171 ElseIf nOpc == 5
172 If CBH->CBH_TIPO $ "23" .and. !Empty(CBH->CBH_HRIMAP)
173 MsgAlert(STR0012) //"Este registro de monitoramento nao pode ser excluido
pois ja gerou movimentacoes no sistema"###"Exclusao nao permitida"
174 Return .f.
175 ElseIf CBH->CBH_TIPO $ "23" .and. ! PermiteExc()
176 Return .f.
177 ElseIf CBH->CBH_TIPO == "1" .and. ! PermiteExc()
178 MsgAlert(STR0012) //"Este registro de monitoramento nao pode ser excluido
pois ja gerou movimentacoes no sistema"###"Exclusao nao permitida"
179 Return .f.
180 ElseIf lCBAtuEmp .and. CBH->CBH_TIPO == "1" .and. CBH->CBH_OPERAC == "01" .and.
CBH->CBH_QEPREV > 0 // Parametro MV_CBATUD4 ativado
181 MsgAlert(STR0014) //"Nao e permitida a exclusao deste registro de
monitoramento pois o mesmo gerou movimentos de Empenho"###"Exclusao nao
permitida"
182 Return .f.
183 ElseIf CBH->CBH_TIPO $ "45" .and. lOPEncerrada .and. (CBH->CBH_OPERAC # cUltApont)
184 MsgAlert(STR0015) //"OP Encerrada, e necessario estornar primeiro o
apontamento da ultima operacao para reabrir a OP"###"Exclusao nao permitida"
185 Return .f.
186 ElseIf CBH->CBH_TIPO $ "45" .and. ! PermiteExc()
187 Return .f.
188 EndIf
189 EndIf
190 // Valida integração WMS
191 If (nOpc == 4 .Or. nOpc == 5) .And. IntWMS() .And. !A080ValWMS(CBH->CBH_OP)
192 Return .f.
193 EndIf
194
195 //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
196 //³ Ajusta a largura para o tamanho padrao Protheus ³
197 //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
198 aSize := MsAdvSize(,.F.,400)
199 aObjects := {}
200 AAdd( aObjects, { 100, 100, .T., .T. } )
201 aInfo := { aSize[1], aSize[2], aSize[3], aSize[4], 2, 2 }
202 aPosObj := MsObjSize( aInfo, aObjects )
203
204 SETAPILHA()
205 DEFINE MSDIALOG oDlg TITLE (cTitulo) FROM aSize[7],0 TO aSize[6],aSize[5] PIXEL OF
oMainWnd
206 RegtoMemory("CBH",nOpc==3)
207 oEnchoice:= MsMGet():New("CBH",nReg,nOpc,,,,,aPosObj[1],,,,,,oDlg,,,.F.)
208 ACTIVATE MSDIALOG oDlg ON INIT
EnchoiceBar(oDlg,{||If(VldDados(nOpc),(nOpcao:=1,oDlg:End()),nOpcao:=0)},{||nOpcao:=0,
oDlg:End()})
209 If nOpcao == 0
210 Return
211 EndIf
212
213 cLote := M->CBH_LOTCTL
214 dValid := M->CBH_DVALID
215
216 Begin Transaction
217 If nopc == 3 // inclusao
218 If lCBAtuemp .and. (M->CBH_QEPREV > 0) .and. (M->CBH_OPERAC == "01")
219 CB023EMP(M->CBH_OP,M->CBH_OPERAC,M->CBH_QEPREV)
220 EndIf
221 If M->CBH_TIPO $ "123"
222
CB023CBH(M->CBH_OP,M->CBH_OPERAC,M->CBH_OPERAD,M->CBH_TRANSA,Nil,M->CBH_DTINI,
M->CBH_HRINI,M->CBH_DTFIM,M->CBH_HRFIM,M->CBH_TIPO,"ACDA080",M->CBH_QEPREV,M->
CBH_QTD,M->CBH_RECUR,aCpsUsu)
223 ElseIf M->CBH_TIPO $ "45"
224 Grava(aCpsUsu,cLote,dValid)
225 EndIf
226 ElseIf nOpc == 4
227
CB023CBH(M->CBH_OP,M->CBH_OPERAC,M->CBH_OPERAD,M->CBH_TRANSA,nReg,M->CBH_DTINI,M->
CBH_HRINI,M->CBH_DTFIM,M->CBH_HRFIM,M->CBH_TIPO,"ACDA080",M->CBH_QEPREV,M->CBH_QTD
,M->CBH_RECUR,aCpsUsu,M->CBH_LOTCTL,M->CBH_NUMLOT,M->CBH_DVALID)
228 ElseIf nOpc == 5
229 SH6->(DBSetFilter( {|| M->CBH_OP == SH6->H6_OP .And.M->CBH_HRINI ==
SH6->H6_HORAINI .And.M->CBH_HRFIM == SH6->H6_HORAFIN}, "M->CBH_OP == SH6->H6_OP
.And.M->CBH_HRINI == SH6->H6_HORAINI .And.M->CBH_HRFIM == SH6->H6_HORAFIN" ))
//Verifica se o registro existe na tabela SH6
230 SH6->(DbGoTop())
231 If M->CBH_OP == SH6->H6_OP .And.M->CBH_HRINI == SH6->H6_HORAINI
.And.M->CBH_HRFIM == SH6->H6_HORAFIN
232 cLote := SH6->H6_LOTECTL
233 cValid := SH6->H6_DTVALID
234 EndIf
235 SH6->(DBClearFilter())
236 If M->CBH_TIPO == "1" // Exclusao do Inicio
237
CB023CB1(M->CBH_OP,M->CBH_OPERAC,M->CBH_OPERAD,M->CBH_TIPO,M->CBH_TRANSA,M->CB
H_DTFIM,.T.) // Limpa o Flag do Operador
238 ElseIf CBH->CBH_TIPO $ "45" // Exclusao da Producao/Perda
239 nRecCBH:= CBH->(RECNO())
240
CB023GRV(M->CBH_OP,M->CBH_OPERAC,M->CBH_TRANSA,OPInfo(CBH_OP,1),M->CBH_RECUR,M
->CBH_OPERAD,M->CBH_TIPO,M->CBH_QTD,cLote,dValid,M->CBH_DTINI,M->CBH_HRINI,M->
CBH_DTFIM,M->CBH_HRFIM,.T.)
241 CBH->(DbGoTo(nRecCBH))
242 AtuEmpenho(M->CBH_OP,M->CBH_OPERAC,M->CBH_QTD) // --> Volta o saldo do
D4_EMPROC para produtos de apropriacao indireta
243 CBH->(DbGoTo(nRecCBH))
244
AtuIniCBH(M->CBH_OP,M->CBH_OPERAC,M->CBH_OPERAD,M->CBH_QTD,M->CBH_DTINI,M->CBH
_HRINI,M->CBH_DTFIM,M->CBH_HRFIM) // --> Atualiza os inicios de operacoes do
CBH
245 CBH->(DbGoTo(nRecCBH))
246 EndIf
247 RecLock("CBH",.F.)
248 CBH->(DbDelete())
249 CBH->(MsUnlock())
250 EndIf
251 End Transaction
252 If lMsErroAuto
253 MostraErro()
254 EndIf
255 SysRefresh()
256 Return
257
258 /*
259 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
260 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
261 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
262 ±±³Fun‡„o ³ RetProd ³ Autor ³ Anderson Rodrigues ³ Data ³ 06/03/04 ³±±
263 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
264 ±±³Descri‡„o ³ Retorna o Codigo do Produto (PA da OP) ³±±
265 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
266 ±±³ Uso ³ SIGAACD ³±±
267 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
268 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
269 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
270 */
271
272 Static Function OPInfo(cOP,nOpc)
273 Local cProduto:= Space(Len(SC2->C2_PRODUTO))
274 Local lEndOP := .f.
275
276 SC2->(DbSetOrder(1))
277 If ! SC2->(DbSeek(xFilial("SC2")+cOP))
278 If nOpc == 1
279 Return(cProduto)
280 Else
281 Return(lEndOP)
282 EndIf
283 EndIf
284
285 If !Empty(SC2->C2_DATRF) .or. (SC2->C2_QUJE+SC2->C2_PERDA) >= SC2->C2_QUANT
286 lEndOP:= .t.
287 EndIf
288
289 cProduto := SC2->C2_PRODUTO
290
291 If nOpc == 1
292 Return(cProduto)
293 Else
294 Return(lEndOP)
295 EndIf
296
297 /*
298 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
299 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
300 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
301 ±±³Fun‡„o ³ AtuIniCBH ³ Autor ³ Anderson Rodrigues ³ Data ³ 06/03/04 ³±±
302 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
303 ±±³Descri‡„o ³ Atualiza as transacoes do tipo inicio para a chave ³±±
304 ±±³ ³ OP+OPERACAO+OPERADOR ³±±
305 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
306 ±±³ Uso ³ SIGAACD ³±±
307 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
308 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
309 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
310 */
311
312 Static Function
AtuIniCBH(cOP,cOperacao,cOperador,nQtd,dDataini,cHoraIni,dDataFim,cHoraFim,lSimulaLib)
313 Local cTipo := "1" //--> Tipo Inicio
314 Local lLibera := .f.
315 Default lSimulaLib:= .f.
316
317 CBH->(DbSetOrder(3))
318
319 If ! CBH->(DbSeek(xFilial("CBH")+cOP+cTipo+cOperacao+cOperador))
320 Return(lLibera)
321 EndIf
322
323 While ! CBH->(EOF()) .and. CBH->(CBH_FILIAL+CBH_OP+CBH_TIPO+CBH_OPERAC+CBH_OPERAD)
== xFilial("CBH")+cOP+cTipo+cOperacao+cOperador
324 If ! Empty(DTOS(CBH->CBH_DTFIM)+CBH->CBH_HRFIM)
325 If (DTOS(dDataFim)+cHoraFim) > (DTOS(CBH->CBH_DTFIM)+CBH->CBH_HRFIM)
326 CBH->(DbSkip())
327 Loop
328 Endif
329 If (DTOS(dDataIni)+cHoraIni) < (DTOS(CBH->CBH_DTINI)+CBH->CBH_HRINI)
330 CBH->(DbSkip())
331 Loop
332 EndIf
333 EndIf
334 If lSimulaLib .and. Empty(DTOS(CBH->CBH_DTFIM)+CBH->CBH_HRFIM)
335 CBH->(DbSkip()) // Neste caso nao tem nada pra alterar no inicio
336 Loop
337 EndIf
338 If (nQtd == 0 .and. CBH->CBH_QTD > 0) .or. (nQtd > 0 .and. CBH->CBH_QTD == 0)
339 CBH->(DbSkip())
340 Loop
341 EndIf
342 If (CBH->CBH_QTD - nQtd) < 0
343 CBH->(DbSkip())
344 Loop
345 EndIf
346 If CBH->CBH_QTD == 0 .and. nQtd == 0 .and.
Empty(DTOS(CBH->CBH_DTFIM)+CBH->CBH_HRFIM)
347 CBH->(DbSkip()) // Neste caso nao tem nada pra alterar no inicio
348 Loop
349 EndIf
350 If lSimulaLib
351 lLibera:= .t.
352 Exit
353 Else
354 RecLock("CBH",.F.)
355 CBH->CBH_QTD-= nQtd
356 CBH->CBH_DTFIM:= CTOD(" / / ")
357 CBH->CBH_HRFIM:= " "
358 CBH->(MsUnlock())
359 lLibera:= .t.
360 Exit
361 EndIf
362 Enddo
363 If lLibera .and. !lSimulaLib
364
CB023CB1(M->CBH_OP,M->CBH_OPERAC,M->CBH_OPERAD,M->CBH_TIPO,M->CBH_TRANSA,M->CBH_DT
FIM,.T.)
365 EndIf
366 Return(lLibera)
367
368 /*
369 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
370 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
371 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
372 ±±³Fun‡„o ³ TmBrowse ³ Autor ³ Anderson Rodrigues ³ Data ³ 25/09/02 ³±±
373 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
374 ±±³Descri‡„o ³ Temporizador para efetuar o Refresh no Browse ³±±
375 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
376 ±±³Parametros³ Nenhum ³±±
377 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
378 ±±³Uso ³ SIGAACD ³±±
379 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
380 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
381 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
382 */
383
384 Static Function TimerBrw(oMBrowse)
385 Local oTimer
386 DEFINE TIMER oTimer INTERVAL 1000 ACTION TmBrowse(GetObjBrow(),oTimer) OF oMBrowse
387 oTimer:Activate()
388 Return .T.
389
390
391 Static Function TmBrowse(oObjBrow,oTimer)
392 oTimer:Deactivate()
393 oObjBrow:Refresh()
394 oTimer:Activate()
395 Return .T.
396
397 /*
398 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
399 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
400 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
401 ±±³Fun‡„o ³ACDA080CLR³ Autor ³ Anderson Rodrigues ³ Data ³ 25/09/02 ³±±
402 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
403 ±±³Descri‡„o ³ Analisa as condicoes para retorno das cores da mBrowse ³±±
404 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
405 ±±³Parametros³ Nenhum ³±±
406 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
407 ±±³Uso ³ SIGAACD ³±±
408 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
409 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
410 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
411 */
412
413 Function ACDA080CLR(nTipo)
414 Local lRet := .F.
415 If nTipo == 1 // ENABLE -> LEGENDA = OP em aberto / DISABLE -> OP encerrada
416 If CBH->CBH_TIPO == "1" .and. (EMPTY(CBH->CBH_DTFIM) .or. Empty(CBH->CBH_HRFIM))
417 lRet := .T.
418 EndIf
419 ElseIf nTipo == 2 // BR_AMARELO -> LEGENDA = Pausa iniciada
420 If CBH->CBH_TIPO $ "23" .and. ! EMPTY(CBH->CBH_DTINI) .and. EMPTY(CBH->CBH_DTFIM)
421 lRet := .T.
422 EndIf
423 ElseIf nTipo == 3 // BR_LARANJA -> LEGENDA = Pausa Finalizada
424 If CBH->CBH_TIPO $ "23" .and. ! EMPTY(CBH->CBH_DTFIM)
425 lRet := .T.
426 EndIf
427 ElseIf nTipo == 4 // BR_AZUL -> LEGENDA = Apontamento da Producao
428 If CBH->CBH_TIPO == "4"
429 lRet := .T.
430 EndIf
431 ElseIf nTipo == 5 // BR_MARROM -> LEGENDA = Apontamento de Perda
432 If CBH->CBH_TIPO == "5"
433 lRet := .T.
434 EndIf
435 ElseIf nTipo == 6 // DISABLE -> LEGENDA = Inicio Encerrado
436 lRet := .T.
437 EndIf
438 Return(lRet)
439
440 /*
441 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
442 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
443 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
444 ±±³Fun‡„o ³ACDA080Lg ³ Autor ³ Anderson Rodrigues ³ Data ³ 25/09/02 ³±±
445 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
446 ±±³Descri‡„o ³ Legenda para as cores da mbrowse ³±±
447 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
448 ±±³Parametros³ Nenhum ³±±
449 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
450 ±±³Retorno ³ .T. ³±±
451 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
452 ±±³Uso ³ ACDA080Lg ³±±
453 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
454 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
455 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
456 */
457
458 Function ACDA080Lg()
459 Local aCorDesc := {}
460
461 aCorDesc := { { "ENABLE" ,STR0018},; //"Inicio em aberto"
462 { "DISABLE" ,STR0019},; //"Inicio encerrado"
463 { "BR_AMARELO" ,STR0020},; //"Pausa iniciada"
464 { "BR_LARANJA" ,STR0021},; //"Pausa finalizada"
465 { "BR_AZUL" ,STR0022},; //"Apontamento da Producao"
466 { "BR_MARRON" ,STR0023}} //"Apontamento de Perda"
467
468 BrwLegenda(STR0001,STR0024,aCorDesc) //"Monitoramento da Producao"###"Status"
469 Return(.t.)
470
471 /*
472 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
473 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
474 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
475 ±±³Fun‡„o ³PermiteExc ³ Autor ³ Anderson Rodrigues ³ Data ³ 25/09/02 ³±±
476 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
477 ±±³Descri‡„o ³Verifica se pode ser realizada a exclusao do tipo inicio ³±±
478 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
479 ±±³Uso ³ SIGAACD ³±±
480 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
481 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
482 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
483 */
484
485 Static Function PermiteExc()
486 Local nOrdem := CBH->(INDEXORD())
487 Local nRecno := CBH->(RECNO())
488 Local cOperador:= CBH->CBH_OPERAD
489 Local cOP := CBH->CBH_OP
490 Local cOperac := CBH->CBH_OPERAC
491 Local cTipo := CBH->CBH_TIPO
492 Local cHrIni := CBH->CBH_HRINI
493 Local cHrFim := CBH->CBH_HRFIM
494 Local cMensagem:= ""
495 Local dDtIni := CBH->CBH_DTINI
496 Local dDtFim := CBH->CBH_DTFIM
497 Local nQtd := CBH->CBH_QTD
498 Local lRet := .t.
499
500 If cTipo == "1" // --> Exclusao da transacao de inicio
501 If ! Empty(DTOS(CBH->CBH_DTFIM)+CBH->CBH_HRFIM) .and. CBH->CBH_QTD > 0
502 Return .f.
503 EndIf
504 CBH->(DbSetOrder(5))
505 CBH->(DbGoTop())
506 If ! CBH->(DbSeek(xFilial("CBH")+cOP+cOperac))
507 Return .f.
508 EndIf
509 While ! CBH->(EOF()) .and. CBH->(CBH_FILIAL+CBH_OP+CBH_OPERAC) ==
xFilial("CBH")+cOP+cOperac
510 If CBH->CBH_OPERAD # cOperador
511 CBH->(DbSkip())
512 Loop
513 ElseIf CBH->CBH_TIPO # cTipo
514 lRet:= .f.
515 Exit
516 Else
517 Exit
518 EndIf
519 Enddo
520 CBH->(DbSetOrder(nOrdem))
521 CBH->(DbGoto(nRecno))
522 ElseIf cTipo $ "23"
523 If Empty(DTOS(CBH->CBH_DTFIM)+CBH->CBH_HRFIM)
524 cMensagem:= STR0066 //"Nao e permitida a exclusao de registros de pausas nao
finalizadas, "
525 cMensagem+= STR0067 //"finalize a pausa atraves do SIGAACD para exclui-la"
526 MsgAlert(cMensagem)
527 lRet:= .f.
528 EndIf
529 Else
530 CB1->(DbSetOrder(1))
531 If ! CB1->(DbSeek(xFilial("CB1")+cOperador)) .or. CB1->CB1_ACAPSM == "1"
532 lRet:= .t.
533 Elseif Empty(CB1->CB1_OP+CB1->CB1_OPERAC) .or. (CB1->CB1_OP+CB1->CB1_OPERAC ==
cOP+cOperac)
534 If ! AtuIniCBH(cOP,cOperac,cOperador,nQtd,dDtIni,cHrIni,dDtFim,cHrFim,.T.)
// --> Verifica se a exclusao vai atualizar inicios ja encerrados
535 lRet:= .t.
536 Else
537 CBH->(DbSetOrder(3))
538 If CBH->(DbSeek(xFilial("CBH")+cOP+"1"+cOperac+cOperador)) .and.
Empty(DTOS(CBH->CBH_DTFIM)+CBH->CBH_HRFIM)
539 MsgAlert(STR0068+cOperador+STR0069) //"Existe inicio em aberto desta
O.P+Operacao para o Operador "###", Verifique !!!"###"Exclusao nao
permitida"
540 lRet:= .f.
541 EndIf
542 EndIf
543 CBH->(DbSetOrder(nOrdem))
544 CBH->(DbGoto(nRecno))
545 Else
546 cMensagem:= STR0025 //"Operador sem permissao para executar apontamentos
simultaneos, a "
547 cMensagem+= STR0026+CB1->CB1_OPERAC+STR0027+CB1->CB1_OP+STR0028 //"operacao
"###" da O.P. "###" esta em aberto"
548 MsgAlert(cMensagem)
549 lRet:= .f.
550 EndIf
551 EndIf
552 Return(lRet)
553
554 /*/
555 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
556 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
557 ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
558 ±±º Fun‡„o ³ VldDados º Autor ³ Anderson Rodrigues º Data ³TUE 24/03/04 º±±
559 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
560 ±±ºDescri‡„o ³ Validacao chamada pela Enchoice Principal º±±
561 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
562 ±±ºUso ³ SIGAACD º±±
563 ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
564 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
565 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
566 /*/
567
568 Static Function VldDados(nOpc)
569 Local cDataHora
570 Local cMensagem:=""
571
572 If nOpc == 5 // exclusao
573 If ExistBlock("ACD080VLE")// Validacao antes da exclusao
574 If ! ExecBlock("ACD080VLE",.F.,.F.)
575 Return .F.
576 Else
577 Return .T.
578 EndIf
579 Else
580 Return .t.
581 EndIf
582 Elseif M->CBH_TIPO # "1"
583 If Empty(M->CBH_RECUR)
584 MsgAlert(STR0080) //"Recurso nao Informado"
585 Return .f.
586 EndIf
587 EndIf
588 If nOpc == 4 // se for alteracao significa que e termino da pausa.
589 Return .t.
590 EndIf
591
592 // deste bloco pra baixo e validacao de inclusao (nOpc == 3)
593
594 If Empty(M->CBH_OP) .or. Empty(M->CBH_OPERAC) .or. Empty(M->CBH_OPERADOR) .or.
Empty(M->CBH_TRANSA)
595 MsgAlert(STR0081) //"Existem campos obrigatorios nao informados, Verifique !!!"
596 Return .f.
597 EndIf
598
599 If M->CBH_TIPO == "1" // Inicio ja foi validado na digitacao da transacao
600 Return .t.
601 EndIf
602 If M->CBH_TIPO $ "23"
603 cDataHora:= (Dtos(M->CBH_DTINI)+M->CBH_HRINI)
604 cMensagem:= STR0082 //"Data Inicio + Hora Inicio invalidas para o Operador "
605 ElseIf M->CBH_TIPO $ "45"
606 cDataHora:= (Dtos(M->CBH_DTFIM)+M->CBH_HRFIM)
607 cMensagem:= STR0083 //"Data Fim + Hora Fim invalidas para o Operador "
608 EndIf
609 If ! CB023DTHR(M->CBH_OP,M->CBH_OPERAC,M->CBH_OPERAD,cDataHora) // --> Verifica se a
Data e Hora atuais sao validas para permitir a transacao.
610 MsgAlert(cMensagem+M->CBH_OPERAD)
611 Return .f.
612 EndIf
613 If lConjunto
614 If ! Seleciona()
615 Return .f.
616 EndIf
617 EndIf
618 If M->CBH_TIPO $ "45"
619 If ExistBlock("ACD080PR")// Validacao antes da confirmacao do apontamento da
producao/perda
620 If ! ExecBlock("ACD080PR",.F.,.F.)
621 Return .f.
622 EndIf
623 EndIf
624 EndIf
625 If M->CBH_TIPO $ "23"
626 If ExistBlock("ACD080PSA")// Validacao antes da confirmacao do apontamento de
pausa
627 If ! ExecBlock("ACD080PSA",.F.,.F.)
628 Return .f.
629 EndIf
630 EndIf
631 EndIf
632 Return .t.
633
634 /*/
635 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
636 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
637 ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
638 ±±º Fun‡„o ³ ACDX301 º Autor ³ Anderson Rodrigues º Data ³Wed 14/10/02º±±
639 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
640 ±±ºDescri‡„o ³ Inicializacao do conteudo do Campo CBH_DESCOPE no Browse º±±
641 ±±º ³ (X3_INIBRW) e no cadastro (X3_RELACAO) º±±
642 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
643 ±±ºUso ³ SIGAACD º±±
644 ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
645 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
646 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
647 /*/
648
649 Function ACDX301(lGatilho)
650 Local cProduto:= " "
651 Local cDescOpe:= " "
652 Local cRoteiro:= " "
653 Local cOP
654 Local cOperac
655
656 Inclui := IIf(Type('Inclui') == "U" , .F. , Inclui)
657
658 If Inclui .and. !lGatilho
659 Return(cDescOpe)
660 Endif
661 If lGatilho
662 cOP := M->CBH_OP
663 cOperac:= M->CBH_OPERAC
664 Else
665 cOP := If(Empty(CBH->CBH_OP),M->CBH_OP,CBH->CBH_OP)
666 cOperac:= If(Empty(CBH->CBH_OPERAC),M->CBH_OPERAC,CBH->CBH_OPERAC)
667 EndIf
668
669 SC2->(DbSetOrder(1))
670 If SC2->(DbSeek(xFilial("SC2")+cOP))
671 cProduto := SC2->C2_PRODUTO
672 EndIf
673
674 If !Empty(SC2->C2_ROTEIRO)
675 cRoteiro := SC2->C2_ROTEIRO
676 Else
677 SB1->(DbSetorder(1))
678 If SB1->(DbSeek(xFilial("SB1")+cProduto)) .And. !Empty(SB1->B1_OPERPAD)
679 cRoteiro := SB1->B1_OPERPAD
680 Else
681 cRoteiro := StrZero(1, Len(SG2->G2_CODIGO))
682 EndIf
683 EndIf
684
685 SG2->(DbSetOrder(1))
686 If SG2->(DbSeek(xFilial("SG2")+cProduto+cRoteiro+cOperac))
687 cDescOpe := SG2->G2_DESCRI
688 EndIf
689 Return(cDescOpe)
690
691 /*/
692 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
693 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
694 ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
695 ±±º Fun‡„o ³ ACDX302 º Autor ³ Anderson Rodrigues º Data ³Wed 14/10/02º±±
696 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
697 ±±ºDescri‡„o ³ Inicializacao do conteudo do Campo CBH_DESCRI no Browse º±±
698 ±±º ³ (X3_INIBRW) e no cadastro (X3_RELACAO) º±±
699 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
700 ±±ºUso ³ SIGAACD º±±
701 ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
702 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
703 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
704 /*/
705
706 Function ACDX302()
707 Local cDescri := " "
708
709 Inclui := IIf(Type('Inclui') == "U" , .F. , Inclui)
710
711 If Inclui
712 Return(cDescri)
713 EndIf
714
715 CBI->(DbSetorder(1))
716 If CBI->(DbSeek(xFilial("CBI")+CBH->CBH_TRANSA+CBH->CBH_TIPO))
717 cDescri := CBI->CBI_DESCRI
718 EndIf
719 Return(cDescri)
720
721 /*/
722 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
723 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
724 ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
725 ±±º Fun‡„o ³ ACDX303 º Autor ³ Anderson Rodrigues º Data ³TUE 27/04/04 º±±
726 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
727 ±±ºDescri‡„o ³ Validacao executada atraves do X3_WHEN dos Campos º±±
728 ±±º ³ CBH_DTINI e CBH_HRINI º±±
729 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
730 ±±ºUso ³ SIGAACD º±±
731 ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
732 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
733 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
734 /*/
735
736 Function ACDX303()
737
738 If Altera .and. (M->CBH_TIPO $ "23" .and. Empty(Dtos(M->CBH_DTFIM)+M->CBH_HRFIM))
739 M->CBH_DTFIM:= dDataBase
740 M->CBH_HRFIM:= Left(Time(),5)
741 EndIf
742 CB1->(DbSetOrder(2))
743 If CB1->(DbSeek(xFilial("CB1")+__cUserID))
744 If CB1->CB1_ALDTHR == "1" // Operador tem permissao para alterar as Datas e
Horas no Monitoramento
745 Return .t.
746 EndIf
747 EndIf
748 CB1->(DbSetOrder(1))
749 Return .f.
750
751 /*/
752 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
753 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
754 ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
755 ±±º Fun‡„o ³ ACDX304 º Autor ³ Anderson Rodrigues º Data ³SAT 01/05/04 º±±
756 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
757 ±±ºDescri‡„o ³ Validacao executada atraves do X3_WHEN dos Campos º±±
758 ±±º ³ CBH_DTFIM e CBH_HRFIM º±±
759 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
760 ±±ºUso ³ SIGAACD º±±
761 ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
762 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
763 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
764 /*/
765
766 Function ACDX304()
767 If M->CBH_TIPO == "1"
768 Return .f.
769 EndIf
770 Return ACDX303()
771
772 /*/
773 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
774 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
775 ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
776 ±±º Fun‡„o ³ ACDX305 º Autor ³ Anderson Rodrigues º Data ³SAT 01/05/04 º±±
777 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
778 ±±ºDescri‡„o ³ Validacao executada atraves do X3_WHEN do Campo CBH_QEPREV º±±
779 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
780 ±±ºUso ³ SIGAACD º±±
781 ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
782 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
783 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
784 /*/
785
786 Function ACDX305()
787
788 If M->CBH_TIPO == "1" .and. lInfQeIni
789 Return .t.
790 EndIf
791 Return .f.
792
793 /*
794 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
795 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
796 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ¿±±
797 ±±³Fun‡„o ³ CB080DTHR ³ Autor ³ Anderson Rodrigues ³ Data ³ 16/06/03 ³±±
798 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄ´±±
799 ±±³Descri‡„o ³ Gatilho para Inicializacao dos campos de Data e Hora ³±±
800 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
801 ±±³ Uso ³ SIGAACD ³±±
802 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
803 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
804 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
805 */
806
807 Function CB080DTHR()
808 Local cTipo := "1"
809 Local nEmAberto:= 0
810 Local aUltProd := {}
811
812 Inclui := IIf(Type('Inclui') == "U" , .F. , Inclui)
813
814 If Inclui .and. M->CBH_TIPO $ "123"
815 M->CBH_DTINI:= dDataBase
816 M->CBH_HRINI:= Left(TIME(),5)
817 If ACDX305() // TIPO == 1 e Informa Quantidade para inicio
818 nEmAberto:= CB023Apont(M->CBH_OP,M->CBH_OPERAC,.F.) // Retorna a quantidade
total de inicio em aberto para esta operacao
819 nSldOPer -= nEmAberto // Atualiza o Saldo da operacao considerando as
quantidades de inicio que estao em aberto
820 If nSldOPer < 0 // --> Se apos a atualizacao o Saldo ficar negativo deixar
como zero.
821 nSldOPer:= 0
822 EndIf
823 If lSGQTDOP
824 M->CBH_QEPREV:= nSldOPer
825 EndIf
826 EndIf
827 ElseIf Altera .and. M->CBH_TIPO $ "23"
828 M->CBH_DTFIM:= dDataBase
829 M->CBH_HRFIM:= Left(TIME(),5)
830 Elseif Inclui .and. M->CBH_TIPO $ "45"
831 CBH->(DbSetOrder(3))
832 If CBH->(DbSeek(xFilial("CBH")+M->CBH_OP+"1"+M->CBH_OPERAC+M->CBH_OPERAD)) .And.
!Empty(CBH->CBH_HRFIM)
833 While !CBH->(Eof()) .And. !Empty(CBH->CBH_HRFIM)
834 CBH->(DbSkip())
835 End
836 EndIf
837 If M->CBH_OP == CBH->CBH_OP .And. M->CBH_OPERAD == CBH->CBH_OPERAD .And.
CBH->CBH_TIPO == "1" .And. CBH->CBH_QTD == 0
838 M->CBH_DTINI:= CBH->CBH_DTINI
839 M->CBH_HRINI:= CBH->CBH_HRINI
840 Else
841 aUltProd:= CB023Dados(M->CBH_OP,cProduto,M->CBH_OPERAC,M->CBH_OPERAD) //
Retorna Dados do ultimo apontamento no SH6
842 If!Empty(aUltProd)
843 M->CBH_DTINI:= aUltProd[1,4]
844 M->CBH_HRINI:= aUltProd[1,5]
845 Else
846 If ! CBH->(DbSeek(xFilial("CBH")+M->CBH_OP+cTipo+M->CBH_OPERAC))
847 MsgAlert(STR0084) //"Operacao nao iniciada para esta OP !!!"
848 Return .f.
849 ElseIf
CBH->(DbSeek(xFilial("CBH")+M->CBH_OP+cTipo+M->CBH_OPERAC+M->CBH_OPERAD))
.and. (!Empty(CBH->CBH_DTFIM) .or. !Empty(CBH->CBH_HRFIM))
850 MsgAlert(STR0085) //"Operacao nao possui inicio em aberto para esta
OP !!!"
851 Return .f.
852 Else
853 M->CBH_DTINI:= CBH->CBH_DTINI
854 M->CBH_HRINI:= CBH->CBH_HRINI
855 EndIf
856 EndIf
857 EndIf
858 M->CBH_DTFIM:= dDataBase
859 M->CBH_HRFIM:= Left(TIME(),5)
860 If M->CBH_DTINI == M->CBH_DTFIM .AND. M->CBH_HRINI == M->CBH_HRFIM
861 M->CBH_HRFIM:= Left(M->CBH_HRFIM,3)+StrZero(Val(Right(M->CBH_HRFIM,2))+1,2)
862 If Right(M->CBH_HRFIM,2) == "60"
863 M->CBH_HRFIM:= StrZero(Val(Left(M->CBH_HRFIM,2))+1,2)+":00"
864 If Left(M->CBH_HRFIM,2)== "24"
865 M->CBH_HRFIM:= "00:00"
866 M->CBH_DTFIM++
867 EndIf
868 EndIf
869 EndIf
870 EndIf
871 Return(M->CBH_DTINI)
872
873 /*
874 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
875 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
876 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
877 ±±³Fun‡„o ³ Seleciona ³ Autor ³ Anderson Rodrigues ³ Data ³ 29/04/04 ³±±
878 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
879 ±±³Descri‡„o ³ Monta Tela para selecao dos operadores para o apontamento ³±±
880 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
881 ±±³ Uso ³ SIGAACD ³±±
882 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
883 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
884 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
885 */
886
887 Static Function Seleciona()
888 Local nX := 0
889 Local nOpca := 0
890 Local nPos := 0
891 Local nMarcados := 0
892 Local aStru := {}
893 Local aCpos := {}
894 Local aPosEnch := {}
895 Local lRet := .t.
896 Local oMark
897 Local oDlg
898 Private lInverte:= .f.
899 Private cMarca := '6j'
900
901 //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
902 //³ Cria Arquivo de Trabalho para a escolha dos ensaios ³
903 //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
904 Aadd( aStru,{ "TRB_OK" , "C",02,0})
905 Aadd( aStru,{ "TRB_OPERAD", "C",06,0})
906 Aadd( aStru,{ "TRB_QTD" , "N",15,0})
907 Aadd( aStru,{ "TRB_DTINI" , "D",8,0})
908 Aadd( aStru,{ "TRB_HRINI" , "C",5,0})
909
910
911
912 oTempTable := FWTemporaryTable():New( "ACDTRB" )
913 oTempTable:SetFields( aStru )
914 oTempTable:AddIndex("indice1", {"TRB_QTD"} )
915 oTempTable:Create()
916
917 //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
918 //³ Redefinicao do aCpos para utilizar no MarkBrow ³
919 //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
920
921 aCpos := { {"TRB_OK" ,"","OK"},;
922 {"TRB_OPERAD" ,"",STR0042},; //"Operador"
923 {"TRB_QTD" ,"",STR0041},; //"Quantidade"
924 {"TRB_DTINI" ,"",STR0098},;//"Dt Inicio"
925 {"TRB_HRINI" ,"",STR0099}}// "Hr Inicio"
926
927
928 nPos:= Ascan(aOperadores,{|x| x[2] == M->CBH_OPERAD})
929
930 If nPos > 0
931 aOperadores[nPos,3]:= Str(M->CBH_QTD,7,2)
932 EndIf
933
934 aOperadores:= aSort(aOperadores,,,{|x,y| x[3] < y[3]})
935
936 For nX := 1 to Len(aOperadores)
937 RecLock("ACDTRB",.T.)
938 If !Empty(aOperadores[nX,1])
939 ACDTRB->TRB_OK:= cMarca
940 EndIf
941 ACDTRB->TRB_OPERAD := aOperadores[nX,2]
942 ACDTRB->TRB_QTD := Val(aOperadores[nX,3])
943 ACDTRB->TRB_DTINI := aOperadores[nX,4]
944 ACDTRB->TRB_HRINI := aOperadores[nX,5]
945 ACDTRB->(MsUnlock())
946 Next
947
948 SETAPILHA()
949
950 DEFINE MSDIALOG oDlg TITLE (STR0086) FROM 30,0 TO TranslateBottom(.F.,18),62 OF
oMainWnd //'Selecao dos Operadores'
951 aPosEnch:= {30,1,150,245}
952 oMark := MsSelect():New("ACDTRB","TRB_OK",,aCpos,lInverte,cMarca,aPosEnch)
953 oMark:oBrowse:lCanAllMark:=.T.
954 oMark:oBrowse:lHasMark :=.T.
955 oMark:bMark := {||MarcaItem(cMarca,lInverte,oDlg)}
956 oMark:oBrowse:bAllMark := {||MarcaTudo(cMarca,oDlg)}
957 ACTIVATE MSDIALOG oDlg CENTERED ON INIT EnchoiceBar(oDlg,{||If(VldMark() .and.
MsgYesNo(STR0096),(nOpcA:=1,oDlg:End()),nOpcA:=0)},{||nOpcA:=0,oDlg:End()})
//"Confirma a Selecao ?"
958 If nOpcA == 1
959 Return .t.
960 EndIf
961
962 oTempTable:Delete() //-- Deleta Arquivo Temporario
963
964 Return .F.
965
966 /*
967 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
968 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
969 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
970 ±±³Fun‡„o ³ VldMark ³ Autor ³ Anderson Rodrigues ³ Data ³ 29/04/04 ³±±
971 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
972 ±±³Descri‡„o ³ Analisa se teve algum item selecionado no na MarkBrow ³±±
973 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
974 ±±³ Uso ³ SIGAACD ³±±
975 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
976 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
977 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
978 */
979
980 Static Function VldMark()
981 Local nRecno
982
983 DbSelectArea("ACDTRB")
984 ACDTRB->(DbGoTop())
985 nRecno := ACDTRB->(Recno())
986 nMarcados:= 0
987 While ! ACDTRB->(EOF())
988 If ! ACDTRB->(IsMark("TRB_OK"))
989 ACDTRB->(DbSkip())
990 Loop
991 EndIf
992 nMarcados++
993 ACDTRB->(DbSkip())
994 Enddo
995 If nMarcados < 2
996 MsgAlert(STR0087) //"Para utilizar o apontamento em conjunto devem ser
selecionados no minimo dois operadores"
997 Return .f.
998 EndIf
999 If (M->CBH_QTD >= nSldOPer) .and. nMarcados < Len(aOperadores) // Nao selecionou
todos os operadores
1000 MsgAlert(STR0088) //"A quantidade informada finaliza o saldo da operacao, neste
caso e necessario selecionar todos os operadores"
1001 Return .f.
1002 EndIf
1003 Return .t.
1004
1005 /*
1006 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
1007 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1008 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
1009 ±±³Fun‡„o ³ MarcaItem ³ Autor ³ Anderson Rodrigues ³ Data ³ 29/04/04 ³±±
1010 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
1011 ±±³Descri‡„o ³ Marca um item por vez na MarkBrowse ³±±
1012 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1013 ±±³ Uso ³ SIGAACD ³±±
1014 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
1015 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1016 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1017 */
1018
1019 Static Function MarcaItem(cMarca,lInverte,oDlg)
1020
1021 If ACDTRB->(IsMark("TRB_OK",cMarca,lInverte))
1022 RecLock("ACDTRB",.F.)
1023 If !lInverte
1024 ACDTRB->TRB_OK:= cMarca
1025 ElseIf (Empty(ACDTRB->TRB_QTD) .AND. ACDTRB->TRB_OPERAD # M->CBH_OPERAD)
1026 ACDTRB->TRB_OK:= " "
1027 EndIf
1028 ACDTRB->(MsUnlock())
1029 Else
1030 RecLock("ACDTRB",.F.)
1031 If !lInverte .and. (Empty(ACDTRB->TRB_QTD) .AND. ACDTRB->TRB_OPERAD #
M->CBH_OPERAD)
1032 ACDTRB->TRB_OK:= " "
1033 Else
1034 ACDTRB->TRB_OK:= cMarca
1035 EndIf
1036 ACDTRB->(MsUnlock())
1037 EndIf
1038 oDlg:Refresh()
1039 Return .t.
1040
1041 /*
1042 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
1043 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1044 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
1045 ±±³Fun‡„o ³ MarcaTudo ³ Autor ³ Anderson Rodrigues ³ Data ³ 29/04/04 ³±±
1046 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
1047 ±±³Descri‡„o ³ Seleciona todos os items da MarkBrowse ³±±
1048 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1049 ±±³ Uso ³ SIGAACD ³±±
1050 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
1051 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1052 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1053 */
1054
1055 Static Function MarcaTudo(cMarca,oDlg)
1056 Local nRecno:= ACDTRB->(Recno())
1057
1058 While ! ACDTRB->(EOF())
1059 RecLock("ACDTRB",.F.)
1060 If Empty(ACDTRB->TRB_OK)
1061 ACDTRB->TRB_OK:= cMarca
1062 Elseif (Empty(ACDTRB->TRB_QTD) .AND. ACDTRB->TRB_OPERAD # M->CBH_OPERAD)
1063 ACDTRB->TRB_OK:= " "
1064 EndIf
1065 ACDTRB->(MsUnlock())
1066 ACDTRB->(DbSkip())
1067 EndDo
1068 ACDTRB->(DbGoto(nRecno))
1069 oDlg:Refresh()
1070 Return .t.
1071
1072 /*/
1073 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
1074 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1075 ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
1076 ±±º Fun‡„o ³ Grava º Autor ³ Anderson Rodrigues º Data ³TUE 24/03/04 º±±
1077 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
1078 ±±ºDescri‡„o ³ Executa rotina automatica da gravacao da Producao/Perda º±±
1079 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
1080 ±±ºUso ³ SIGAACD º±±
1081 ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
1082 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1083 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1084 /*/
1085
1086 Static Function Grava(aCpsUsu,cLote,dValid)
1087 Local cParTot := ""
1088 Local dDtApon := If(CBH->(ColumnPos("CBH_DTAPON")) > 0, M->CBH_DTAPON, dDataBase)
//Proteção para release 12.1.23
1089
1090 Default aCpsUsu := {}
1091
1092 If lConjunto
1093
GrvConjunto(aCpsUsu,cLote,dValid)//M->CBH_OP,M->CBH_OPERAC,M->CBH_RECUR,M->CBH_OPE
RAD,M->CBH_TIPO,M->CBH_QTD)
1094 Else
1095 If CBH->(ColumnPos( "CBH_PARTOT" )) > 0
1096 cParTot := M->CBH_PARTOT
1097 EndIf
1098 If lMod1
1099
CB023GRV(M->CBH_OP,M->CBH_OPERAC,M->CBH_TRANSA,cProduto,M->CBH_RECUR,M->CBH_OP
ERAD,M->CBH_TIPO,M->CBH_QTD,cLote,dValid,M->CBH_DTINI,M->CBH_HRINI,M->CBH_DTFI
M,M->CBH_HRFIM,,aCpsUsu,cParTot,dDtApon)
1100 Else
1101
CB025GRV(M->CBH_OP,M->CBH_OPERAC,M->CBH_TRANSA,cProduto,M->CBH_RECUR,M->CBH_OP
ERAD,M->CBH_TIPO,M->CBH_QTD,cLote,dValid,M->CBH_DTINI,M->CBH_HRINI,M->CBH_DTFI
M,M->CBH_HRFIM ,aCpsUsu, cParTot,dDtApon)
1102 EndIf
1103 EndIf
1104 Return
1105
1106 /*
1107 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
1108 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1109 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
1110 ±±³Fun‡„o ³ GrvConjunto³ Autor ³ Anderson Rodrigues ³ Data ³ 29/04/04 ³±±
1111 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
1112 ±±³Descri‡„o ³ Gravacao do apontamento para os operadores selecionados ³±±
1113 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1114 ±±³ Uso ³ SIGAACD ³±±
1115 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
1116 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1117 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1118 */
1119
1120 Static Function GrvConjunto(aCpsUsu,cLote,dValid)
1121 Default aCpsUsu := {}
1122
1123 DbSelectArea("ACDTRB")
1124 ACDTRB->(DbGoTop())
1125 While ! ACDTRB->(EOF())
1126 If ! ACDTRB->(IsMark("TRB_OK"))
1127 ACDTRB->(DbSkip())
1128 Loop
1129 EndIf
1130 If lMod1
1131
CB023GRV(M->CBH_OP,M->CBH_OPERAC,M->CBH_TRANSA,cProduto,M->CBH_RECUR,ACDTRB->T
RB_OPERAD,M->CBH_TIPO,ACDTRB->TRB_QTD,cLote,dValid,TRB_DTINI,TRB_HRINI,M->CBH_
DTFIM,M->CBH_HRFIM,,aCpsUsu)
1132 Else
1133
CB025GRV(M->CBH_OP,M->CBH_OPERAC,M->CBH_TRANSA,cProduto,M->CBH_RECUR,ACDTRB->T
RB_OPERAD,M->CBH_TIPO,ACDTRB->TRB_QTD,cLote,dValid,TRB_DTINI,TRB_HRINI,M->CBH_
DTFIM,M->CBH_HRFIM,aCpsUsu)
1134 EndIf
1135 ACDTRB->(DbSkip())
1136 Enddo
1137
1138 If oTempTable <> Nil
1139 oTempTable:Delete()
1140 oTempTable := Nil
1141 Endif
1142
1143 Return
1144
1145 /*/
1146 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
1147 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1148 ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
1149 ±±º Fun‡„o ³ AtuEmpenho º Autor ³ Anderson Rodrigues º Data ³FRI 02/04/04 º±±
1150 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
1151 ±±ºDescri‡„o ³ Volta o saldo dos produtos consumidos pela producao(D4_EMPROC) º±±
1152 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
1153 ±±ºUso ³ SIGAACD º±±
1154 ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
1155 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1156 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1157 /*/
1158
1159 Static Function AtuEmpenho(cOP,cOperacao,nQtd)
1160 Local cProduto := " "
1161 Local cRoteiro := " "
1162 Local cUltOper := " "
1163 Local aSD3
1164 Local nRecnoSD3
1165 Local cNumSeq
1166 Local cIdent
1167 Local cArmProc := GetMvNNR('MV_LOCPROC','99')
1168
1169 SC2->(DbSetOrder(1))
1170 If ! SC2->(DbSeek(xFilial("SC2")+cOP))
1171 Return
1172 EndIf
1173 cProduto := SC2->C2_PRODUTO
1174
1175 If ! Empty(SC2->C2_ROTEIRO)
1176 cRoteiro:= SC2->C2_ROTEIRO
1177 Else
1178 SB1->(dbSetorder(1))
1179 If SB1->(dbSeek(xFilial("SB1")+cProduto)) .And. !Empty(SB1->B1_OPERPAD)
1180 cRoteiro:= SB1->B1_OPERPAD
1181 Else
1182 cRoteiro:= StrZero(1, Len(SG2->G2_CODIGO))
1183 EndIf
1184 EndIf
1185
1186 cUltOper:= CB023UG2(cProduto,cRoteiro) // Retorna o codigo da ultima operacao do
roteiro existente no SG2
1187
1188 If cUltOper # cOperacao // Se nao for estorno da ultima operacao, nao deve devolver
o saldo da requisicao
1189 Return
1190 EndIf
1191
1192 SD4->(DbSetOrder(2))
1193
1194 If ! SD4->(DbSeek(xFilial("SD4")+Padr(cOP,Len(SD4->D4_OP))))
1195 Return
1196 EndIf
1197
1198 aSD3 := SD3->(GetArea())
1199 nRecnoSD3 := SD3->(Recno())
1200 cOP := SD3->D3_OP
1201 cNumSeq := SD3->D3_NUMSEQ
1202 cIdent := SD3->D3_IDENT
1203 SD3->(DbSetOrder(1))
1204 If SD3->(DbSeek(xFilial("SD3")+cOP))
1205 While SD3->(!Eof() .AND. D3_FILIAL+D3_OP == xFilial("SD3")+cOP)
1206 If (SD3->D3_CF == "DE2") .AND. (SD3->D3_NUMSEQ == cNumSeq) .AND.
(SD3->D3_IDENT == cIdent) .AND. (Left(SD3->D3_COD,3) != "MOD") .AND.
(SD3->D3_LOCAL == cArmProc)
1207 If SD4->(DbSeek(xFilial("SD4")+SD3->(D3_OP+D3_COD+D3_LOCAL)))
1208 RecLock("SD4",.F.)
1209 SD4->D4_EMPROC:= SD4->D4_EMPROC + SD3->D3_QUANT
1210 SD4->(MsUnlock())
1211 EndIf
1212 EndIf
1213 SD3->(DbSkip())
1214 Enddo
1215 EndIf
1216 RestArea(aSD3)
1217 SD3->(DbGoto(nRecnoSD3))
1218 Return
1219
1220 /*/
1221 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
1222 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1223 ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
1224 ±±ºPrograma ³ ACDA080R º Autor ³ Anderson Rodrigues º Data ³ 12/09/03 º±±
1225 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
1226 ±±ºDescricao ³ Relatorio Monitoramento da Producao º±±
1227 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
1228 ±±ºUso ³ SIGAACD º±±
1229 ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
1230 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1231 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1232 /*/
1233
1234 Function ACDA080R()
1235
1236 //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
1237 //³ Declaracao de Variaveis ³
1238 //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
1239
1240 Private cString := "CBH"
1241 Private aOrd := {}
1242 Private cDesc1 := STR0029 //"Este programa tem como objetivo imprimir
informacoes necessarias para"
1243 Private cDesc2 := STR0030 //"possibilitar o acompanhamento detalhado da
producao de acordo com os "
1244 Private cDesc3 := STR0031 //"parametros informados pelo
usuario "
1245 Private cPict := ""
1246 Private lEnd := .F.
1247 Private lAbortPrint := .F.
1248 Private limite := 132
1249 Private tamanho := "M"
1250 Private nomeprog := "ACDA080R" // Coloque aqui o nome do programa para impressao
no cabecalho
1251 Private nTipo := 18
1252 Private aReturn := { STR0032, 1, STR0033, 2, 2, 1, "", 1}
//"Zebrado"###"Administracao"
1253 Private nLastKey := 0
1254 Private cPerg := "ACDA80"
1255 Private titulo := STR0034 //"Relatorio Monitoramento da Producao"
1256 Private nLin := 06
1257 Private Cabec1 := ""
1258 Private Cabec2 := ""
1259 Private cbtxt := STR0035 //"Regsitro(s) lido(s)"
1260 Private cbcont := 0
1261 Private CONTFL := 01
1262 Private m_pag := 01
1263 Private lRet := .T.
1264 Private imprime := .T.
1265 Private wnrel := "ACDA080R" // Coloque aqui o nome do arquivo usado para
impressao em disco
1266
1267 //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
1268 //³ Variaveis utilizadas como Parametros ¿
1269 //³ MV_PAR01 = Da Data ? ¿
1270 //³ MV_PAR02 = Ate Data ? ¿
1271 //³ MV_PAR03 = Da OP ? ¿
1272 //³ MV_PAR04 = Ate Ate OP ? ¿
1273 //³ MV_PAR05 = Da Transacao ? ¿
1274 //³ MV_PAR06 = Ate Transacao ? ¿
1275 //³ MV_PAR07 = Do Operador ? ¿
1276 //³ MV_PAR08 = Ate Operador ? ¿
1277 //³ MV_PAR09 = Ordem para impressao ? ¿
1278 //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
1279
1280 wnrel :=
SetPrint(cString,NomeProg,cPerg,@titulo,cDesc1,cDesc2,cDesc3,.F.,aOrd,.F.,Tamanho,,.F.
)
1281
1282 Pergunte(cPerg,.F.)
1283
1284 If nLastKey == 27
1285 Return
1286 EndIf
1287
1288 SetDefault(aReturn,cString)
1289
1290 If nLastKey == 27
1291 Return
1292 EndIf
1293
1294 RptStatus({|| Relatorio() },Titulo)
1295 Return
1296
1297 /*/
1298 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
1299 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1300 ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
1301 ±±ºFun‡„o ³ Relatorioº Autor ³ Anderson Rodrigues º Data ³ 12/09/03 º±±
1302 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
1303 ±±ºDescri‡„o ³ Funcao auxiliar chamada pela RPTSTATUS. A funcao RPTSTATUS º±±
1304 ±±º ³ monta a janela com a regua de processamento. º±±
1305 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
1306 ±±ºUso ³ SIGAACD º±±
1307 ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
1308 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1309 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1310 /*/
1311
1312 Static Function Relatorio()
1313 Local cTotHrs := " "
1314 Local cTipo := " "
1315 Local cRecurso := " "
1316 Local cCalend := " "
1317 Local nMinutos := 0
1318 Local aDados := {}
1319 Local aDadosSH6:= {}
1320
1321 CBH->(DbSetOrder(6))
1322 DbSeek(xFilial("CBH")+Dtos(MV_PAR01),.T.) // Posiciona no 1o.reg. satisfatorio
1323 SetRegua(RecCount()-Recno())
1324
1325 While !EOF() .and. (CBH->CBH_DTINI >= MV_PAR01 .and. CBH->CBH_DTINI <= MV_PAR02)
1326 If Padr(CBH->CBH_OP,Len(SH6->H6_OP)) < MV_PAR03 .or.
Padr(CBH->CBH_OP,Len(SH6->H6_OP)) > MV_PAR04
1327 CBH->(DbSkip())
1328 Loop
1329 EndIf
1330 If CBH->CBH_TRANSA < MV_PAR05 .or. CBH->CBH_TRANSA > MV_PAR06
1331 CBH->(DbSkip())
1332 Loop
1333 EndIf
1334 If CBH->CBH_OPERAD < MV_PAR07 .or. CBH->CBH_OPERAD > MV_PAR08
1335 CBH->(DbSkip())
1336 Loop
1337 EndIf
1338 IncRegua(STR0036) //"Imprimindo"
1339 If lAbortPrint
1340 @nLin,00 PSAY STR0037 //"*** CANCELADO PELO OPERADOR ***"
1341 Exit
1342 EndIf
1343 cTipo:= RetTipo(CBH->CBH_TRANSA)
1344 If (Empty(CBH->CBH_DTFIM) .or. Empty(CBH->CBH_HRFIM)) .and. cTipo == "1"
1345 cRecurso:= CBRetRecur(CBH->CBH_OP,CBH->CBH_OPERAC)
1346 cCalend := Posicione("SH1",1,xFilial("SH1")+cRecurso,"H1_CALEND")
1347 cTotHrs :=
PmsHrsItvl(CBH->CBH_DTINI,CBH->CBH_HRINI,dDataBase,Left(Time(),5),cCalend,"",c
Recurso,.T.)
1348 nMinutos:= If(cTotHrs-Int(cTotHrs)>0,(cTotHrs-Int(cTotHrs))*60,0)
1349 cTotHrs := StrZero(Int(cTotHrs),3)+":"+StrZero(nMinutos,2)
1350 ElseIf (!Empty(CBH->CBH_DTFIM) .or. !Empty(CBH->CBH_HRFIM)) .and. cTipo == "1"
1351 cRecurso:= CBRetRecur(CBH->CBH_OP,CBH->CBH_OPERAC)
1352 cCalend := Posicione("SH1",1,xFilial("SH1")+cRecurso,"H1_CALEND")
1353 cTotHrs :=
PmsHrsItvl(CBH->CBH_DTINI,CBH->CBH_HRINI,CBH->CBH_DTFIM,CBH->CBH_HRFIM,cCalend
,"",cRecurso,.T.)
1354 nMinutos:= If(cTotHrs-Int(cTotHrs)>0,(cTotHrs-Int(cTotHrs))*60,0)
1355 cTotHrs := StrZero(Int(cTotHrs),3)+":"+StrZero(nMinutos,2)
1356 ElseIf cTipo $ "23"
1357 cRecurso:= CBRetRecur(CBH->CBH_OP,CBH->CBH_OPERAC)
1358 cCalend := Posicione("SH1",1,xFilial("SH1")+cRecurso,"H1_CALEND")
1359 cTotHrs :=
PmsHrsItvl(CBH->CBH_DTINI,CBH->CBH_HRINI,CBH->CBH_DTFIM,CBH->CBH_HRFIM,cCalend
,"",cRecurso,.T.)
1360 nMinutos:= If(cTotHrs-Int(cTotHrs)>0,(cTotHrs-Int(cTotHrs))*60,0)
1361 cTotHrs := StrZero(Int(cTotHrs),3)+":"+StrZero(nMinutos,2)
1362 Else
1363 aDadosSH6:=
RetDadosH6(CBH->CBH_OP,CBH->CBH_OPERAC,CBH->CBH_DTINI,CBH->CBH_HRINI,CBH->CBH_
QTD,CBH->CBH_OPERAD)
1364 EndIf
1365 If Empty(aDadosSH6)
1366 aadd(aDados,{Padr(CBH->CBH_OP,Len(SH6->H6_OP)),;
1367 CBH->CBH_OPERAC,;
1368 CBH->CBH_TRANSA,;
1369 CBH->CBH_QTD,;
1370 Padr(CBH->CBH_OPERAD,Len(SH6->H6_OPERADO)),;
1371 CBH->CBH_DTINI,;
1372 CBH->CBH_HRINI,;
1373 CBH->CBH_DTFIM,;
1374 CBH->CBH_HRFIM,;
1375 cTotHrs,;
1376 CBH->CBH_TIPO,;
1377 CBH->CBH_DTINV,;
1378 CBH->CBH_HRINV,;
1379 CBH->(RECNO())})
1380 Else
1381 aadd(aDados,{aDadosSH6[1,1],; // --> OP
1382 aDadosSH6[1,2],; //--> Operacao
1383 CBH->CBH_TRANSA,; //--> Transacao
1384 (aDadosSH6[1,8]+aDadosSH6[1,9]),; //--> Quantidade
1385 aDadosSH6[1,11],; //--> Operador
1386 aDadosSH6[1,4],; //--> Data Inicio
1387 aDadosSH6[1,5],; //--> Hora Inicio
1388 aDadosSH6[1,6],; //--> Data Fim
1389 aDadosSH6[1,7],; //--> Hora Fim
1390 aDadosSH6[1,10],;//--> Total de Horas
1391 CBH->CBH_TIPO,;
1392 CBH->CBH_DTINV,;
1393 CBH->CBH_HRINV,;
1394 CBH->(RECNO())})
1395 EndIf
1396 cTotHrs := " "
1397 nMinutos := 0
1398 aDadosSH6:= {}
1399 CBH->(Dbskip())
1400 Enddo
1401 Imprime(aDados)
1402 Fim()
1403 Return
1404
1405 /*/
1406 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
1407 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1408 ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
1409 ±±ºFun‡„o ³ Imprime º Autor ³ Anderson Rodrigues º Data ³ 12/09/03 º±±
1410 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
1411 ±±ºDescri‡„o ³ Funcao auxiliar chamada pela funcao Relatorio º±±
1412 ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
1413 ±±ºUso ³ SIGAACD º±±
1414 ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
1415 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1416 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1417 /*/
1418
1419 Static Function Imprime(aDados)
1420 Local lRet := .t.
1421 Local nX := 0
1422 Local aDadosImp:= {}
1423
1424 //aDados[nX,1] --> OP
1425 //aDados[nX,2] --> Operacao
1426 //aDados[nX,3] --> Transacao
1427 //aDados[nX,4] --> Quantidade
1428 //aDados[nX,5] --> Operador
1429 //aDados[nX,6] --> Data Inicio
1430 //aDados[nX,7] --> Hora Inicio
1431 //aDados[nX,8] --> Data Fim
1432 //aDados[nX,9] --> Hora Fim
1433 //aDados[nX,10]--> Total de Horas
1434 //aDados[nX,11]--> Tipo
1435 //aDados[nX,12]--> Data Invertida
1436 //aDados[nX,13]--> Hora Invertida
1437 //aDados[nX,14]--> Recno da tabela CBH
1438 If MV_PAR09 == 1
1439 // --> Ordem 1 do indice
1440 aDadosImp:= aSort(aDados,,,{|x,y| x[1]+x[3]+x[11]+x[2]+x[12]+x[13] <
y[1]+y[3]+y[11]+y[2]+y[12]+y[13]})
1441 Elseif MV_PAR09 == 2
1442 // --> Ordem 2 do indice
1443 aDadosImp:= aSort(aDados,,,{|x,y| x[1]+x[11]+x[3]+x[2]+Dtos(x[8])+x[9] <
y[1]+y[11]+y[3]+y[2]+Dtos(y[8])+y[9]})
1444 Elseif MV_PAR09 == 3
1445 // --> Ordem 3 do indice
1446 aDadosImp:= aSort(aDados,,,{|x,y| x[1]+x[11]+x[2]+x[3]+Str(x[14]) <
y[1]+y[11]+y[2]+y[3]+Str(y[14])})
1447 Elseif MV_PAR09 == 4
1448 // --> Ordem 4 do indice
1449 aDadosImp:= aSort(aDados,,,{|x,y| x[5]+x[12]+x[13]+Str(x[14]) <
y[5]+y[12]+y[13]+Str(y[14])})
1450 Elseif MV_PAR09 == 5
1451 // --> Ordem 5 do indice
1452 aDadosImp:= aSort(aDados,,,{|x,y| x[1]+x[2]+x[12]+x[13] < y[1]+y[2]+y[12]+y[13]})
1453 Endif
1454
1455 SetRegua(RecCount()-Recno())
1456
1457 For nX:= 1 to Len(aDadosImp)
1458 IncRegua(STR0036) //"Imprimindo"
1459 If lAbortPrint
1460 @nLin,00 PSAY STR0037 //"*** CANCELADO PELO OPERADOR ***"
1461 Exit
1462 EndIf
1463 //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
1464 //³ Impressao do cabecalho do relatorio. . . ³
1465 //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
1466 If lRet
1467 Cabec(Titulo,Cabec1,Cabec2,NomeProg,Tamanho,nTipo)
1468 @nLin, 000 Psay STR0038 //"OP"
1469 @nLin, 015 Psay STR0039 //"Operacao"
1470 @nLin, 026 Psay STR0040 //"Transacao"
1471 @nLin, 038 Psay STR0041 //"Quantidade"
1472 @nLin, 051 Psay STR0042 //"Operador"
1473 @nLin, 064 Psay STR0043 //"Data Inicio"
1474 @nLin, 079 Psay STR0044 //"Hora Inicio"
1475 @nLin, 095 Psay STR0045 //"Data Fim"
1476 @nLin, 108 Psay STR0046 //"Hora Fim"
1477 @nLin, 120 Psay STR0047 //"Total Horas"
1478 nLin := nLin + 1
1479 @nLin, 000 Psay Replicate("*",132)
1480 nLin := nLin + 1
1481 lRet := .f.
1482 EndIf
1483 @nLin, 000 Psay aDadosImp[nX,1]
1484 @nLin, 018 Psay aDadosImp[nX,2]
1485 @nLin, 029 Psay aDadosImp[nX,3]
1486 @nLin, 031 Psay aDadosImp[nX,4] Picture "@E 999,999,999.99"
1487 @nLin, 052 Psay aDadosImp[nX,5]
1488 @nLin, 065 Psay aDadosImp[nX,6]
1489 @nLin, 081 Psay aDadosImp[nX,7]
1490 @nLin, 095 Psay aDadosImp[nX,8]
1491 @nLin, 110 Psay aDadosImp[nX,9]
1492 @nLin, 122 Psay aDadosImp[nX,10]
1493 nLin := nLin + 1
1494 If nLin > 59 // Salto de Página. Neste caso o formulario tem 55 linhas...
1495 Cabec(Titulo,Cabec1,Cabec2,NomeProg,Tamanho,nTipo)
1496 nLin := 06
1497 @nLin, 000 Psay STR0038 //"OP"
1498 @nLin, 015 Psay STR0039 //"Operacao"
1499 @nLin, 026 Psay STR0040 //"Transacao"
1500 @nLin, 038 Psay STR0041 //"Quantidade"
1501 @nLin, 051 Psay STR0042 //"Operador"
1502 @nLin, 064 Psay STR0043 //"Data Inicio"
1503 @nLin, 079 Psay STR0044 //"Hora Inicio"
1504 @nLin, 095 Psay STR0045 //"Data Fim"
1505 @nLin, 108 Psay STR0046 //"Hora Fim"
1506 @nLin, 120 Psay STR0047 //"Total Horas"
1507 nLin := nLin + 1
1508 @nLin, 000 Psay Replicate("*",132)
1509 nLin := nLin + 1
1510 EndIf
1511 Next
1512 Return
1513
1514 //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
1515 //³ Finaliza impressao ³
1516 //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
1517
1518 Static Function Fim()
1519
1520 SET DEVICE TO SCREEN
1521 If aReturn[5]==1
1522 dbCommitAll()
1523 SET PRINTER TO
1524 OurSpool(wnrel)
1525 EndIf
1526 MS_FLUSH()
1527 Return
1528
1529 /*
1530
1531 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
1532 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1533 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
1534 ±±³Fun‡„o ³ RetDadosH6 ³ Autor ³ Anderson Rodrigues ³ Data ³ 12/09/03 ³±±
1535 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
1536 ±±³Descri‡„o ³ Retorna array contendo as informacoes do apontamento ³±±
1537 ±±³ ³ gerado no SH6 ³±±
1538 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1539 ±±³ Uso ³ SIGAACD ³±±
1540 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
1541 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1542 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1543 */
1544 Static Function RetDadosH6(cOP,cOperacao,dDtFim,cHrFim,nQtd,cOperador)
1545 Local aDadosSH6:= {}
1546
1547 SH6->(DbSetOrder(1))
1548 If SH6->(DbSeek(xFilial("SH6")+cOP))
1549 While ! SH6->(EOF()) .and. SH6->H6_OP == Padr(cOP,Len(SH6->H6_OP))
1550 If SH6->H6_OPERAC # cOperacao
1551 SH6->(DbSkip())
1552 Loop
1553 ElseIf SH6->H6_DATAFIN # dDtFim .or. SH6->H6_HORAFIN # cHrFim
1554 SH6->(DbSkip())
1555 Loop
1556 ElseIf (SH6->H6_QTDPROD+SH6->H6_QTDPERD) # nQtd
1557 SH6->(DbSkip())
1558 Loop
1559 ElseIf SH6->H6_OPERADO # cOperador
1560 SH6->(DbSkip())
1561 Loop
1562 EndIf
1563
aadd(aDadosSH6,{SH6->H6_OP,SH6->H6_OPERAC,SH6->H6_RECURSO,SH6->H6_DATAINI,SH6-
>H6_HORAINI,SH6->H6_DATAFIN,SH6->H6_HORAFIN,SH6->H6_QTDPROD,SH6->H6_QTDPERD,SH
6->H6_TEMPO,SH6->H6_OPERADO})
1564 Exit
1565 Enddo
1566 EndIf
1567 Return(aDadosSH6)
1568
1569 /*
1570 ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
1571 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1572 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
1573 ±±³Fun‡„o ³ RetTipo ³ Autor ³ Anderson Rodrigues ³ Data ³ 12/09/03 ³±±
1574 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
1575 ±±³Descri‡„o ³ Retorna o tipo da transacao ³±±
1576 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1577 ±±³ Uso ³ SIGAACD ³±±
1578 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
1579 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1580 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1581 */
1582 Static Function RetTipo(cTransa)
1583 Local cTipo:= " "
1584 Local nIndice:= CBH->(IndexOrd())
1585 Local nRecno := CBH->(Recno())
1586
1587 CBI->(DbSetOrder(1))
1588 If CBI->(DbSeek(xFilial("CBI")+cTransa))
1589 cTipo:= CBI->CBI_TIPO
1590 EndIf
1591 CBH->(DbSetOrder(nIndice))
1592 CBH->(DbGoto(nRecno))
1593 Return(cTipo)
1594
1595
1596 /*
1597 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1598 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ¿±±
1599 ±±³Fun‡„o ³A080LotCtl³ Autor ³Aecio Ferreira Gomes ³ Data ³ 11/01/10 ³±±
1600 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄ´±±
1601 ±±³Descri‡„o ³ Faz valida‡„o dos Lotes digitados na cria‡„o ³±±
1602 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1603 ±±³Sintaxe ³ A080LotCtl ³±±
1604 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1605 ±±³Uso ³ Generico ³±±
1606 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
1607 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1608 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1609 */
1610 Function A080LotCtl()
1611 Local lRet:=.T.
1612
1613 If Empty(M->CBH_OP) .And. !Rastro(SC2->C2_PRODUTO)
1614 Help(" ",1,"NAORASTRO")
1615 lRet:=.F.
1616 EndIf
1617
1618 If lRet
1619 DbSelectArea("SB1")
1620 DbSetOrder(1)
1621 If DbSeek(xFilial("SB1")+SC2->C2_PRODUTO) .And. !Empty(M->CBH_OP)
1622 M->CBH_DVALID:= dDataBase + SB1->B1_PRVALID
1623 EndIf
1624 EndIf
1625
1626 If Empty(M->CBH_LOTCTL)
1627 M->CBH_DVALID:= cTod('')
1628 EndIf
1629
1630 Return lRet
1631 /*
1632 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1633 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ¿±±
1634 ±±³Fun‡„o ³A080DesRot³ Autor ³ Paulo Fco. Cruz Nt. ³ Data ³ 28.06.2010 ³±±
1635 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1636 ±±³Descri‡„o ³Retorna a string a pesquisar no gatilho do campo CHB_OPERAC ³±±
1637 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1638 ±±³Sintaxe ³A080DesRot ³±±
1639 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1640 ±±³Uso ³ACDA080 ³±±
1641 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
1642 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1643 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1644 */
1645 Function A080DesRot(cOP, cOperac)
1646 Local cRet := ""
1647 Local aArea := GetArea()
1648 Local aAreaSC2 := SC2->(GetArea())
1649 Local aAreaSG2 := SG2->(GetArea())
1650
1651 Default cOP := ""
1652 Default cOperac := ""
1653
1654 DbSelectArea("SC2")
1655 SC2->(DbSetOrder(1))
1656 SC2->(DbSeek(xFilial("SC2")+cOP))
1657
1658 DbSelectArea("SG2")
1659 If Empty(SC2->C2_ROTEIRO)
1660 SG2->(DbSetOrder(3))
1661 SG2->(DbSeek(xFilial("SG2")+SC2->(C2_PRODUTO)+cOperac))
1662 Else
1663 SG2->(DbSetOrder(1))
1664 SG2->(DbSeek(xFilial("SG2")+SC2->(C2_PRODUTO+C2_ROTEIRO)+cOperac))
1665 EndIf
1666
1667 cRet := SG2->G2_DESCRI
1668
1669 RestArea(aArea)
1670 SC2->(RestArea(aAreaSC2))
1671 SG2->(RestArea(aAreaSG2))
1672
1673 Return cRet
1674 /*
1675 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1676 ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ¿±±
1677 ±±³Fun‡„o ³A080ValWMS³ Autor ³ Alexsander Correa ³ Data ³ 03.07.2018 ³±±
1678 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1679 ±±³Descri‡„o ³Efetua a validacao da situação da integracao com o WMS ³±±
1680 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1681 ±±³Sintaxe ³A080ValWMS ³±±
1682 ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
1683 ±±³Uso ³ACDA080 ³±±
1684 ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
1685 ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
1686 ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
1687 */
1688 Function A080ValWMS(cOP)
1689 Local lRet := .T.
1690 Local cQuery := ""
1691 Local cAliasSD3 := ""
1692 // Valida se há integração com WMS
1693 cQuery := "SELECT SD3.R_E_C_N_O_ RECNOSD3"
1694 cQuery += " FROM "+RetSqlName('SD3')+" SD3"
1695 cQuery += " WHERE SD3.D3_FILIAL = '"+xFilial('SD3')+"'"
1696 cQuery += " AND SD3.D3_OP = '"+cOP+"'"
1697 cQuery += " AND SD3.D3_ESTORNO <> 'S'"
1698 cQuery += " AND SD3.D3_IDDCF <> '"+Space(TamSx3("D3_IDDCF")[1])+"'"
1699 cQuery += " AND SD3.D3_TM < '500'"
1700 cQuery += " AND SD3.D_E_L_E_T_ = ' '"
1701 cQuery := ChangeQuery(cQuery)
1702 cAliasSD3 := GetNextAlias()
1703 DbUseArea(.T.,'TOPCONN',TcGenQry(,,cQuery),cAliasSD3,.F.,.T.)
1704 If (cAliasSD3)->(!Eof())
1705 lRet := WmsAvalSC2("2",,,,(cAliasSD3)->RECNOSD3)
1706 EndIf
1707 (cAliasSD3)->(dbCloseArea())
1708 Return lRet
1709
1710
1711 /*/{Protheus.doc} Menudef
1712 (long_description)
1713 @type Static Function
1714 @author TOTVS
1715 @since 21/02/2020
1716 @version version
1717 @param param_name, param_type, param_descr
1718 @return return_var, return_type, return_description
1719 @example
1720 (examples)
1721 @see (links_or_references)
1722 /*/
1723 Static Function MenuDef()
1724
1725 Local aRotMenu := { }
1726
1727
1728 aRotMenu := { { STR0002, "AxPesqui", 0, 1},; //"Pesquisar"
1729 { STR0003, "AxVisual", 0, 2},; //"Visualizar"
1730 { STR0004, "ACDA080A", 0, 3},; //"Incluir"
1731 { STR0005, "ACDA080A", 0, 4},; //"Alterar"
1732 { STR0006, "ACDA080A", 0, 5},; //"Excluir"
1733 { STR0007, "ACDA080R", 0, 4},; //"Relatorio"
1734 { STR0008, "ACDA080Lg", 0, 3} } //"Legenda"
1735
1736
1737 RETURN aRotMenu
1738
1739
1740
1741
1742
1743
1744
1745

You might also like