package Dojo::Model::Vdgproc; use Mojo::File 'path'; use Mojo::JSON qw(decode_json encode_json); use Dojo::Support qw{month_num2txt log dmph} ; use Mojo::Base 'Mojolicious::Controller'; use File::Basename; use Encode qw(decode_utf8 encode_utf8); use Text::Markdown qw{ markdown }; use DBI; use Dojo::Conf; sub new { bless {}, shift }; my $data_path = path('lib/Dojo/Model/Data')->make_path; #just for fun sub calendar_monthblock { my $r = _read ($data_path->child("cal/q1Block.q")->slurp); map { $_->{fecha}=month_num2txt($_->{month})." ".$_->{year} } @$r; return $r; } sub mtxt { my ($di, $mi, $df, $mf)=@_; # dini,mini,dfin,mfin my $txt; if ($mi == $mf){ if ($di == $df){ $txt = "$di de ".month_num2txt($mi);} else{ $txt = "Del $di al $df de ".month_num2txt($mi);} } else{ $txt = "Del $di de ".month_num2txt($mi)." al $df de ".month_num2txt($mf); } return $txt; } sub calendar_events { my $r = _read ($data_path->child("cal/q3Event.q")->slurp); foreach (@$r) { $_->{fecha} = mtxt( $_->{dini},$_->{mini},$_->{dfin},$_->{mfin}) } return $r; } sub event{ my ($c,$id)=@_; my $r = shift @{ _read ($data_path->child("event/qEvent.q")->slurp,$id)}; $r->{date} = mtxt( $r->{dini},$r->{mini},$r->{dend},$r->{mend}); return $r; } sub spay { my ($c,$class,$id) = @_; return _read ($data_path->child("/store/qIdStore.q")->slurp,$id)->[0]; } # 4000004840000008 3, 6, 9, 12, and 18 month installment plans available # "*p4000004840000008 # 4242424242424242 No installment plans available. #============================================================================== sub store_id { my ($c,$class,$id) = @_; my $r = _read ($data_path->child("/store/qEstore.q")->slurp,$id)->[0]; $r->{fecha} = mtxt( $r->{dini},$r->{mini},$r->{dfin},$r->{mfin}); return $r; } sub intentCreate{ my ($c,$id) = @_; my $q="select t.precio as precio, c.nombre as nombre from tienda_evento as t inner join curso as c on t.curso_id=c.id where t.id = ? ;"; return _read ($q,$id)->[0]; } sub intentConfirm{ my ($c,$id) = @_; my $q="select t.precio as precio, c.nombre as nombre from tienda_evento as t inner join curso as c on t.curso_id=c.id where t.id = ? ;"; return _read ($q,$id)->[0]; } #============================================================================== # admin evets sub event_del { return _write("delete from evento where id = ?;",pop);} sub course_del{ return _write("delete from curso where id = ?;",pop); } sub place_del { return _write("delete from lugar where id = ?;",pop); } sub event_up{ my ($self,@bind)=@_; return _write($data_path->child("/admin/event/add/qEup.q")->slurp,@bind); } sub course_up{ my ($self,@bind)=@_; return _write($data_path->child("/admin/event/add/qCup.q")->slurp,@bind); } sub place_up{ my ($self,@bind)=@_; return _write($data_path->child("/admin/event/add/qPup.q")->slurp,@bind); } sub event_ch{ my ($self,@bind)=@_; return _write($data_path->child("/admin/event/change/qEup.q")->slurp,@bind); } sub course_ch{ my ($self,@bind)=@_; return _write($data_path->child("/admin/event/change/qCup.q")->slurp,@bind); } sub place_ch{ my ($self,@bind)=@_; return _write($data_path->child("/admin/event/change/qPup.q")->slurp,@bind); } #============================================================================== #ayudas ===================================== sub tst{ my $c=shift; my $d=$c->param('n'); log("------log-------"); log("$d"); log("------log-------"); return 0; } sub _read{ my ($q,@bind)=@_; my @empty; my $dbh = DBI->connect("DBI:mysql:".Dojo::Conf::VDGPROCDB.":".Dojo::Conf::VDGPROCDB_H,Dojo::Conf::VDGPROCDB_UR,Dojo::Conf::VDGPROCDB_URP, {mysql_enable_utf8 => 1}); return \@empty unless($dbh); my $h=$dbh->selectall_arrayref($q,{ Slice => {} },@bind)//"error"; $dbh->disconnect(); #((col1=>d1,col2=>d1),(col1=>d2,col2=>d2)) return $h; } sub _write{ my ($q,@bind)=@_; my (@empty); my $dbh = DBI->connect("DBI:mysql:".Dojo::Conf::VDGPROCDB.":".Dojo::Conf::VDGPROCDB_H,Dojo::Conf::VDGPROCDB_UW,Dojo::Conf::VDGPROCDB_UWP,{mysql_enable_utf8 => 1} ); return 0 unless($dbh); my $h=$dbh->do($q,{ Slice => {} },@bind)//"error"; $dbh->disconnect(); log("db write: $h"); return $h; } sub load_md{ return "" unless my $text = path(shift)->slurp; return markdown( decode_utf8($text) ); } sub load_txt{ return "" unless my $text = path(shift)->slurp; return decode_utf8($text); } 1;