Jump to content
Fivewin Brasil

Integração com máquina de tinta


oribeiro

Recommended Posts

PessoAll,

Um cliente meu que é uma loja de tintas pediu que eu fizesse a integração do meu sistema de vendas com uma máquina que mistura as tintas na loja. O cliente escolhe uma tinta diferente e a máquina faz a mistura dos pigmentos com a base e gera a tinta. Ele quer que eu leia essa fórmula e faça a baixa do estoque desses pigmentos e da base usada no meu sistema de vendas. Alguém já fez isso?

No aguardo, obrigado.

Oscar Ribeiroid=size4>

OASyS Informáticaid=blue>id=size4>

Fwh2.6+xHb1.0.0+BCC551+WorkShopid=size1>

Link to comment
Share on other sites

PessoAll,

Um cliente meu que é uma loja de tintas pediu que eu fizesse a integração do meu sistema de vendas com uma máquina que mistura as tintas na loja. O cliente escolhe uma tinta diferente e a máquina faz a mistura dos pigmentos com a base e gera a tinta. Ele quer que eu leia essa fórmula e faça a baixa do estoque desses pigmentos e da base usada no meu sistema de vendas. Alguém já fez isso?

No aguardo, obrigado.

Oscar Ribeiroid=size4>

OASyS Informáticaid=blue>id=size4>

Fwh2.6+xHb1.0.0+BCC551+WorkShopid=size1>

Link to comment
Share on other sites

Ola,

serviço bem especifico esse, mas se cada pegmento tenha um codigo e so tratar como um produto qualquer, e semelhante a formulas de alimentos, cada igrediente que formam um produto final, tipo um "bolo" tem que ter seu codigo e sua medida.

Obrigado.

Evaldo Wagner

FiveWin9.07 xHarbour 1.21,BCC55, Pelles C xDev,xHarbour for Linux(console)

evaldowl@hotmail.com

Link to comment
Share on other sites

Ola Oasys Informatica.

Se eu entendi o seu post, sua situção é parecida com a minha.

Uma Loja de Auto Peças que processa a combinação de tintas automotivas para pintura de autos.

No caso as tintas e a Máquina são de um mesmo fabricante, então conforme combinado o software da maquina gera um arquivo texto de cada formula.

Nos interpretamos este arquivo e processamos dentro do Sistema de Controles de Estoques.

Tem tambem o seguinte, O software da máquina gera um Resumo dos produtos Utilizados, aí é só confrontar.

Espero que tenha ajudado.

Tavares

Link to comment
Share on other sites

Se for LAZZURIL pode tentar entender o codigo:

static function LAZUMIX1P

Abre_Arq("SFELINH","SFELINH")

if ! dbseek("EMB")

Replace(,{{"LICODI" ,"EMB"},;

{"LIDESC" ,"EMBALAGEM"}},.T.)

end

if ! dbseek("TIA")

Replace(,{{"LICODI" ,"TIA"},;

{"LIDESC" ,if(empty(mDESCRI),"TINTA AUTOMOTIVA",mDESCRI)}},.T.)

end

if ! dbseek("BAS")

Replace(,{{"LICODI" ,"BAS"},;

{"LIDESC" ,"BASE"}},.T.)

end

dbclosearea()

Abre_Arq("SFECON2")

mDIRLAZU:=alltrim(RD_LAZU)

dbclosearea()

Abre_Arq("SFECASA","SFECASA")

Abre_Arq("SFEINDU","SFEINDU")

Abre_Arq("SFEPRCO","SFEPRCO")

Abre_Arq("SFEPROD","SFEPROD")

xARQ1:=mDIRLAZU+"PRODUTO.TXT"

xARQ2:=mDIRLAZU+"BASE.TXT"

xARQ3:=mDIRLAZU+"EMBALAGE.TXT"

xARQ4:=mDIRLAZU+"FORMULA.TXT"

if ! file(xARQ1)

Exib_Alert("Sem arquivo de importação LAZZUMIX",xARQ1)

return

end

mOQueTaFazendo:=""

MsgProcessamento("Importação Produtos LAZZUMIX")

Processamento:SetText("Importando Produtos... Aguarde...")

mtemp:= " "

arq_temp:= fopen(xarq1, 2)

fim:= NOVO := .F.

CAMPO:="01"

Do While (Asc(mtemp) != 0)

mtemp:= " "

reg:= ""

passou:= 0

Do While (mtemp != Chr(13))

fread(arq_temp, @mtemp, 1)

reg:= reg + mtemp

If (passou > 2000)

fim:= .T.

Exit

EndIf

passou++

EndDo

Campo&CAMPO:=REG

CAMPO:=strzero(val(CAMPO)+1,2)

if val(CAMPO)>12

POSPERS:=at("P",CAMPO01)

if POSPERS # 0

CAMPO01:=left(CAMPO01,POSPERS-1)+str(asc("P"),2)+right(CAMPO01,len(CAMPO01)-POSPERS)

end

if val(CAMPO01)=0

exit

end

TEMPU:=(alltrim(tiraacento(CAMPO03))="POLIURETANO")

for QTDCAD=1 to if(TEMPU,2,1)

POSPERS:=at("P",CAMPO01)

if POSPERS # 0

CAMPO01:=left(CAMPO01,POSPERS-1)+str(asc("P"),2)+right(CAMPO01,len(CAMPO01)-POSPERS)

end

if QTDCAD=2

CAMPO01:=alltrim(tiraacento(CAMPO01))+"6"

end

selectsit("SFEPRCO")

if ! dbseek(str(val(CAMPO01),16))

dbappend()

end

LOCK_REG()

replace PRCODI with val(CAMPO01) ,;

PRAPLIC with alltrim(tiraacento(CAMPO07))+" "+alltrim(tiraacento(CAMPO04)) ,;

PRFRACAO with "S" ,;

PRMARCA with "LAZZUMIX"

LIB_REG()

selectsit("SFEPROD")

if ! dbseek(str(val(CAMPO01),16))

dbappend()

end

LOCK_REG()

if mPRECO .or. PRP_COMPRA=0

if padr(alltrim(tiraacento(CAMPO03)),10)="LAZZUDUR "

replace PRP_COMPRA with val(CAMPO09)

else

replace PRP_COMPRA with val(CAMPO08)

end

end

mPRECOVenda:=if(QTDCAD=1,val(CAMPO10),val(CAMPO11))

if padr(alltrim(tiraacento(CAMPO03)),10)="LAZZUDUR "

mPRECOVenda:=val(CAMPO11)

end

mPRNOME:=alltrim(alltrim(mDESCRI)+" "+alltrim(tiraacento(CAMPO02))+" "+alltrim(tiraacento(CAMPO03))+" "+alltrim(tiraacento(CAMPO06)))

replace PRLINHA with if(empty(PRLINHA),"TIA",PRLINHA) ,;

PRCODI with val(CAMPO01) ,;

PRREF with alltrim(tiraacento(CAMPO06)) ,;

PRNOME with mPRNOME+" "+if(TEMPU,if(QTDCAD=1,"CONCENTRADO","DILUIDO"),"") ,;

PRUNID with "QRT"

if mPRECO .or. PRP_VENDA=0

replace PRP_VENDA with mPRECOVenda+(mPRECOVenda*mPERC/100) ,;

PRP_VENDAT with mPRECOVenda+(mPRECOVenda*mPERC/100)

end

LIB_REG()

mOQueTaFazendo:=alltrim(mPRNOME)

oOQueTaFazendo:Refresh()

sysrefresh()

CAMPO:="01"

selectsit("SFECASA")

if ! dbseek(str(val(CAMPO01),16))

dbappend()

LOCK_REG()

replace CAPROD with val(CAMPO01) ,;

CALINHA with "EMB" ,;

CAOBRIG with .T.

LIB_REG()

end

next

end

end

FCLOSE(xArq1)

Processamento:SetText("Importando Bases... Aguarde...")

mtemp:= " "

arq_temp:= fopen(xarq2, 2)

fim:= NOVO := .F.

CAMPO:="01"

Do While (Asc(mtemp) != 0)

mtemp:= " "

reg:= ""

passou:= 0

Do While (mtemp != Chr(13))

fread(arq_temp, @mtemp, 1)

reg:= reg + mtemp

If (passou > 2000)

fim:= .T.

Exit

EndIf

passou++

EndDo

Campo&CAMPO:=alltrim(REG)

CAMPO:=strzero(val(CAMPO)+1,2)

if val(CAMPO)>3

POSPERS:=at("P",CAMPO01)

if POSPERS # 0

CAMPO01:=left(CAMPO01,POSPERS-1)+str(asc("P"),2)+right(CAMPO01,len(CAMPO01)-POSPERS)

end

if empty(CAMPO01)

exit

end

mPRCODI:=strzero(asc(subs(CAMPO01,1,1)),2)

mPRCODI+=strzero(asc(subs(CAMPO01,2,1)),2)

mPRCODI+=subs(CAMPO01,3,2)

mPRCODI+=strzero(asc(subs(CAMPO01,5,1)),2)

selectsit("SFEPROD")

if ! dbseek(str(val(mPRCODI),16))

dbappend()

end

mPRQTD_ARMA:=if(PRQTD_ARMA=0,850,PRQTD_ARMA)

LOCK_REG()

mPRNOME:=if(alltrim(tiraacento(CAMPO01))#"THINNER","BASE ","")+alltrim(tiraacento(CAMPO01))+" "+alltrim(CAMPO02)

replace PRLINHA with if(empty(PRLINHA),"BAS",PRLINHA) ,;

PRCODI with val(mPRCODI) ,;

PRREF with left(tiraacento(CAMPO01),5) ,;

PRNOME with mPRNOME ,;

PRUNID with "GR" ,;

PRARMAZEN with "QRT" ,;

PRP_VENDA with val(CAMPO03)/mPRQTD_ARMA ,;

PRP_VENDAT with val(CAMPO03)/mPRQTD_ARMA ,;

PRQTD_ARMA with mPRQTD_ARMA

if mPRECO .or. PRP_COMPRA=0

replace PRP_COMPRA with val(CAMPO03)/mPRQTD_ARMA

end

LIB_REG()

selectsit("SFEPRCO")

if ! dbseek(str(val(mPRCODI),16))

dbappend()

end

LOCK_REG()

replace PRCODI with val(mPRCODI),;

PRFRACAO with "S" ,;

PRMARCA with "LAZZUMIX"

LIB_REG()

mOQueTaFazendo:=alltrim(mPRNOME)

oOQueTaFazendo:Refresh()

sysrefresh()

CAMPO:="01"

end

end

Processamento:SetText("Importando Embalagens... Aguarde...")

mtemp:= " "

arq_temp:= fopen(xarq3, 2)

fim:= NOVO := .F.

CAMPO:="01"

Do While (Asc(mtemp) != 0)

mtemp:= " "

reg:= ""

passou:= 0

Do While (mtemp != Chr(13))

fread(arq_temp, @mtemp, 1)

reg:= reg + mtemp

If (passou > 2000)

fim:= .T.

Exit

EndIf

passou++

EndDo

Campo&CAMPO:=alltrim(REG)

CAMPO:=strzero(val(CAMPO)+1,2)

if val(CAMPO)>3

POSPERS:=at("P",CAMPO01)

if POSPERS # 0

CAMPO01:=left(CAMPO01,POSPERS-1)+str(asc("P"),2)+right(CAMPO01,len(CAMPO01)-POSPERS)

end

if empty(CAMPO01)

exit

end

mPRCODI:=strzero(val(CAMPO01),10)

selectsit("SFEPRCO")

if ! dbseek(str(val(mPRCODI),16))

dbappend()

end

LOCK_REG()

replace PRCODI with val(mPRCODI) ,;

PRMARCA with "LAZZUMIX"

LIB_REG()

selectsit("SFEPROD")

if ! dbseek(str(val(mPRCODI),16))

dbappend()

end

LOCK_REG()

if mPRECO .or. PRP_COMPRA=0

replace PRP_COMPRA with val(CAMPO03)

end

mPRNOME:="EMBALAGEM "+alltrim(CAMPO02)

replace PRLINHA with if(empty(PRLINHA),"EMB",PRLINHA) ,;

PRCODI with val(mPRCODI) ,;

PRNOME with mPRNOME ,;

PRUNID with "UN"

if mPRECO .or. PRP_VENDA=0

replace PRP_VENDA with val(CAMPO03) ,;

PRP_VENDAT with val(CAMPO03)

end

LIB_REG()

mOQueTaFazendo:=alltrim(mPRNOME)

oOQueTaFazendo:Refresh()

sysrefresh()

CAMPO:="01"

end

end

Processamento:SetText("Importando Fórmulas... Aguarde...")

mtemp:= " "

arq_temp:= fopen(xarq4, 2)

fim:= NOVO := .F.

CAMPO:="01"

NAOFOI:=0

Do While (Asc(mtemp) != 0)

mtemp:= " "

reg:= ""

passou:= 0

Do While (mtemp != Chr(13))

fread(arq_temp, @mtemp, 1)

reg:= reg + mtemp

If (passou > 2000)

fim:= .T.

Exit

EndIf

passou++

EndDo

Campo&CAMPO:=alltrim(REG)

CAMPO:=strzero(val(CAMPO)+1,2)

if val(CAMPO)>6

if alltrim(CAMPO03)="660 ml" .or. alltrim(CAMPO03)="1 Quarto"

POSPERS:=at("P",CAMPO01)

if POSPERS # 0

CAMPO01:=left(CAMPO01,POSPERS-1)+str(asc("P"),2)+right(CAMPO01,len(CAMPO01)-POSPERS)

end

if empty(CAMPO01)

exit

end

if alltrim(CAMPO03)="660 ml"

CAMPO01:=alltrim(tiraacento(CAMPO01))+"6"

end

mPRCODI:=strzero(asc(subs(CAMPO05,1,1)),2)

mPRCODI+=strzero(asc(subs(CAMPO05,2,1)),2)

mPRCODI+=subs(CAMPO05,3,2)

mPRCODI+=strzero(asc(subs(CAMPO05,5,1)),2)

mPRECOUNI:=0

selectsit("SFEPROD")

dbseek(str(val(mPRCODI),16))

mPRECOUNI:=PRVALATAC

selectsit("SFEINDU")

if ! dbseek(str(val(CAMPO01),16)+str(val(mPRCODI),16))

dbappend()

end

LOCK_REG()

replace ITCODI with CAMPO01 ,;

ITPROD with val(mPRCODI) ,;

ITQTD with val(CAMPO06) ,;

ITVALOR with mPRECOUNI

LIB_REG()

mOQueTaFazendo:=sfeprod->PRNOME

oOQueTaFazendo:Refresh()

sysrefresh()

NAOFOI:=0

else

NAOFOI++

end

CAMPO:="01"

end

if NAOFOI>100

exit

end

end

PROCESSAMENTO:end()

clos data

Exib_mens("Processo concluído com sucesso")

fclose(arq_temp)

4309709.jpg

Rubem Jr

http://sistemasit.com

Belem/PA

Link to comment
Share on other sites

  • 1 month later...

Pessoal,

Eu tenho o manual que indica como acessar em SQL ou C# e a senha do banco de dados da Suvinil (Danresa) que está em SQL Express 2005. Como eu faço para acessar esse banco do xHarbour 1.0.0 com FWH 8.08 ?

Grato,

Oscar Ribeiroid=size4>

OASyS Informáticaid=blue>id=size4>

Fwh2.6+xHb1.0.0+BCC551+WorkShopid=size1>

Link to comment
Share on other sites

Preciso consultar a composição da tinta fabricada na máquina tintométrica da BASF SUVINIL/DANRESA e baixar o estoque da base e das cores utilizadas. Ninguém do fórum fez isso ainda? Preciso de uma dica.

Obrigado,

Oscar Ribeiroid=size4>

OASyS Informáticaid=blue>id=size4>

Fwh8.8+xHb1.0.0+BCC55+WorkShopid=size1>

Link to comment
Share on other sites

Se algum de vocês tem sistema rodando em loja de tintas e quiser estudar comigo esse assunto de integração do seu sistema com o da SUVINIL, segue o link para baixar o manual e do banco de dados deles em MS-SQL 2005 Express.

http://dl.dropbox.com/u/61457492/MANUAL.ZIP

http://dl.dropbox.com/u/61457492/SELFCOLOR.ZIP

Obrigado.

Oscar Ribeiroid=size4>

OASyS Informáticaid=blue>id=size4>

Fwh8.8+xHb1.0.0+BCC55+WorkShopid=size1>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...