[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

SF.net SVN: ledger-smb:[5330] trunk/LedgerSMB



Revision: 5330
          http://ledger-smb.svn.sourceforge.net/ledger-smb/?rev=5330&view=rev
Author:   einhverfr
Date:     2012-12-09 09:48:59 +0000 (Sun, 09 Dec 2012)
Log Message:
-----------
Removing unneeded JC.pm, and porting csv import to new timecard class.

Modified Paths:
--------------
    trunk/LedgerSMB/Scripts/import_csv.pm

Removed Paths:
-------------
    trunk/LedgerSMB/JC.pm

Deleted: trunk/LedgerSMB/JC.pm
===================================================================
--- trunk/LedgerSMB/JC.pm	2012-12-09 09:32:23 UTC (rev 5329)
+++ trunk/LedgerSMB/JC.pm	2012-12-09 09:48:59 UTC (rev 5330)
@@ -1,589 +0,0 @@
-#=====================================================================
-# LedgerSMB
-# Small Medium Business Accounting software
-# http://www.ledgersmb.org/
-#
-# Copyright (C) 2006
-# This work contains copyrighted information from a number of sources all used
-# with permission.
-#
-# This file contains source code included with or based on SQL-Ledger which
-# is Copyright Dieter Simader and DWS Systems Inc. 2000-2005 and licensed
-# under the GNU General Public License version 2 or, at your option, any later
-# version.  For a full list including contact information of contributors,
-# maintainers, and copyright holders, see the CONTRIBUTORS file.
-#
-# Original Copyright Notice from SQL-Ledger 2.6.17 (before the fork):
-# Copyright (C) 2005
-#
-#  Author: DWS Systems Inc.
-#     Web: http://www.sql-ledger.org
-#
-#  Contributors:
-#
-#======================================================================
-#
-# This file has undergone whitespace cleanup.
-#
-#======================================================================
-#
-# Job Costing
-#
-#======================================================================
-
-package JC;
-
-use LedgerSMB::IS;
-use LedgerSMB::PriceMatrix;
-use LedgerSMB::Sysconfig;
-
-sub get_jcitems {
-    my ( $self, $myconfig, $form ) = @_;
-
-    # connect to database
-    my $dbh = $form->{dbh};
-
-    my $query = qq|SELECT current_date|;
-    ( $form->{transdate} ) = $dbh->selectrow_array($query);
-
-    ( $form->{employee}, $form->{employee_id} ) = $form->get_employee($dbh);
-
-    my $dateformat = $myconfig->{dateformat};
-    $dateformat =~ s/yy/yyyy/;
-    $dateformat =~ s/yyyyyy/yyyy/;
-
-    if ( $form->{id} ) {
-
-        # retrieve timecard/storescard
-        $query = qq|
-			SELECT j.*, to_char(j.checkedin, 'HH24:MI:SS') 
-			       AS checkedina, 
-			       to_char(j.checkedout, 'HH24:MI:SS') 
-			       AS checkedouta, 
-			       to_char(j.checkedin, ?) AS transdate,
-			       e.name AS employee, e.id as employee_id, 
-                               p.partnumber,
-			       pr.control_code, 
-			       pr.description AS projectdescription,
-			  FROM jcitems j
-                          JOIN person ps ON (j.person_id = ps.id)
-			  JOIN entity e ON (e.id = ps.entity_id)
-			  JOIN parts p ON (p.id = j.parts_id)
-			  JOIN business_unit pr ON (pr.id = j.project_id)
-			 WHERE j.id = ?|;
-        $sth = $dbh->prepare($query);
-        $sth->execute( $dateformat, $form->{id} )
-          || $form->dberror($query);
-
-        $ref = $sth->fetchrow_hashref(NAME_lc);
-
-        for ( keys %$ref ) { $form->{$_} = $ref->{$_} }
-        $sth->finish;
-        $form->{project} = "project";
-        for (qw(checkedin checkedout)) {
-            $form->{$_} = $form->{"${_}a"};
-            delete $form->{"${_}a"};
-        }
-
-        $form->{noncharge} = $form->{non_billable};
-
-        $query = qq|
-			SELECT s.printed, s.spoolfile, s.formname
-			  FROM status s
-			 WHERE s.formname = ?
-			       AND s.trans_id = ?|;
-        $sth = $dbh->prepare($query);
-        $sth->execute( $form->{type}, $form->{id} )
-          || $form->dberror($query);
-
-        while ( $ref = $sth->fetchrow_hashref(NAME_lc) ) {
-            $form->{printed} .= "$ref->{formname} "
-              if $ref->{printed};
-            $form->{queued} .= "$ref->{formname} $ref->{spoolfile} "
-              if $ref->{spoolfile};
-        }
-        $sth->finish;
-        for (qw(printed queued)) { $form->{$_} =~ s/ +$//g }
-    }
-
-    JC->jcitems_links( $myconfig, $form, $dbh );
-
-    # get language codes
-    $query = qq|SELECT * FROM language ORDER BY 2|;
-    $sth   = $dbh->prepare($query);
-    $sth->execute || $form->dberror($query);
-
-    $form->{all_language} = ();
-    while ( $ref = $sth->fetchrow_hashref(NAME_lc) ) {
-        push @{ $form->{all_language} }, $ref;
-    }
-    $sth->finish;
-
-    $dbh->commit;
-
-}
-
-sub jcitems_links {
-    my ( $self, $myconfig, $form, $dbh ) = @_;
-
-    my $disconnect = 0;
-
-    if ( !$dbh ) {
-        $dbh = $form->{dbh};
-    }
-
-    my $query;
-
-    $form->{project} = 'project';
-    JC->jcparts( $myconfig, $form, $dbh );
-
-    $form->all_employees( $myconfig, $dbh, $form->{transdate} );
-    my $proj_sth = $form->{dbh}->prepare(q|
-        SELECT * FROM business_unit__list_by_class('2', ?, ?, '0')
-    |);
-    $proj_sth->execute($form->{transdate}, $form->{customer_id});
-
-    $sth = $dbh->prepare($query);
-    $sth->execute || $form->dberror($query);
-
-    while ( my $ref = $proj_sth->fetchrow_hashref(NAME_lc) ) {
-        push @{ $form->{all_project} }, $ref;
-    }
-    $sth->finish;
-}
-
-sub jcparts {
-    my ( $self, $myconfig, $form, $dbh ) = @_;
-
-    my ( $null, $project_id ) = split /--/, $form->{projectnumber};
-    $project_id = $dbh->quote($project_id);
-
-    my $query = qq|SELECT credit_id FROM project WHERE id = $project_id|;
-    my ($credit_id) = $dbh->selectrow_array($query);
-    $credit_id = $dbh->quote($credit_id);
-
-    my $where;
-
-    if ( $form->{project} eq 'job' ) {
-        $where = " AND p.income_accno_id IS NULL";
-        if ( $form->{type} eq 'storescard' ) {
-            $where = " AND p.inventory_accno_id > 0
-			           AND p.income_accno_id > 0";
-        }
-
-        $query = qq|
-			   SELECT p.id, p.partnumber, p.description, 
-			          p.sellprice,
-			          p.unit, t.description AS translation
-			     FROM parts p
-			LEFT JOIN translation t 
-			          ON (t.trans_id = p.id 
-			          AND t.language_code 
-			          = | . $dbh->quote( $form->{language_code} ) . qq|)
-			    WHERE p.obsolete = '0'
-			          $where|;
-    }
-    elsif ( $form->{project} eq 'project' ) {
-        $where = " AND p.inventory_accno_id IS NULL";
-        if ( $form->{type} eq 'storescard' ) {
-            $where = " AND p.inventory_accno_id > 0";
-        }
-
-        $query = qq|
-			   SELECT p.id, p.partnumber, p.description, 
-			          p.sellprice, p.unit, 
-			          t.description AS translation 
-			     FROM parts p 
-			LEFT JOIN translation t 
-			          ON (t.trans_id = p.id 
-			          AND t.language_code 
-			          = | . $dbh->quote( $form->{language_code} ) . qq|)
-			    WHERE p.obsolete = '0'
-			          AND p.assembly = '0' $where|;
-    }
-    else {
-
-        $query = qq|
-			   SELECT p.id, p.partnumber, p.description, 
-			          p.sellprice, p.unit, 
-			          t.description AS translation
-			     FROM parts p
-			LEFT JOIN translation t 
-			          ON (t.trans_id = p.id 
-			          AND t.language_code 
-			          = | . $dbh->quote( $form->{language_code} ) . qq|)
-			    WHERE p.obsolete = '0'
-			          AND p.income_accno_id IS NULL
-			UNION
-			   SELECT p.id, p.partnumber, p.description, 
-			          p.sellprice, p.unit, 
-			          t.description AS translation 
-			     FROM parts p 
-			LEFT JOIN translation t 
-			          ON (t.trans_id = p.id 
-			          AND t.language_code 
-			          = | . $dbh->quote( $form->{language_code} ) . qq|)
-			    WHERE p.obsolete = '0'
-			          AND p.assembly = '0'
-			          AND p.inventory_accno_id IS NULL|;
-    }
-
-    $query .= qq|
-		 ORDER BY 2|;
-    my $sth = $dbh->prepare($query);
-    $sth->execute || $form->dberror($query);
-
-    if (defined $form->{vendor_id} or defined $form->{customer_id} ) {
-        my $pmh = PriceMatrix::price_matrix_query( $dbh, $form );
-        IS::exchangerate_defaults( $dbh, $form );
-
-        while ( my $ref = $sth->fetchrow_hashref(NAME_lc) ) {
-            $ref->{description} = $ref->{translation}
-              if $ref->{translation};
-            PriceMatrix::price_matrix( $pmh, $ref, $form->{transdate}, 4, $form,
-                $myconfig );
-            push @{ $form->{all_parts} }, $ref;
-        }
-    } else {
-        while ( my $ref = $sth->fetchrow_hashref(NAME_lc) ) {
-            push @{ $form->{all_parts} }, $ref;
-        }
-    }
-    $sth->finish;
-
-}
-
-sub delete_timecard {
-    my ( $self, $myconfig, $form ) = @_;
-
-    # connect to database
-    my $dbh = $form->{dbh};
-
-    my %audittrail = (
-        tablename => 'jcitems',
-        reference => $form->{id},
-        formname  => $form->{type},
-        action    => 'deleted',
-        id        => $form->{id}
-    );
-
-    $form->audittrail( $dbh, "", \%audittrail );
-
-    my $query = qq|DELETE FROM jcitems WHERE id = ?|;
-    my $sth   = $dbh->prepare($query);
-    $sth->execute( $form->{id} ) || $form->dberror($query);
-
-    # delete spool files
-    $query = qq|
-		SELECT spoolfile FROM status
-		 WHERE formname = ?
-		       AND trans_id = ?
-		       AND spoolfile IS NOT NULL|;
-    $sth = $dbh->prepare($query);
-    $sth->execute( $form->{type}, $form->{id} ) || $form->dberror($query);
-
-    my $spoolfile;
-    my @spoolfiles = ();
-
-    while ( ($spoolfile) = $sth->fetchrow_array ) {
-        push @spoolfiles, $spoolfile;
-    }
-    $sth->finish;
-
-    # delete status entries
-    $query = qq|
-		DELETE 
-		  FROM status
-		 WHERE formname = ?
-		       AND trans_id = ?|;
-    $sth = $dbh->prepare($query);
-    $sth->execute( $form->{type}, $form->{id} ) || $form->dberror($query);
-
-    my $rc = $dbh->commit;
-
-    if ($rc) {
-        foreach $spoolfile (@spoolfiles) {
-            unlink "${LedgerSMB::Sysconfig::spool}/$spoolfile"
-              if $spoolfile;
-        }
-    }
-
-    $dbh->commit();
-
-    $rc;
-
-}
-
-sub jcitems {
-    my ( $self, $myconfig, $form ) = @_;
-
-    # connect to database
-    my $dbh = $form->{dbh};
-
-    my $query;
-    my $where = "1 = 1";
-    my $null;
-    my $var;
-
-    if ( $form->{projectnumber} ) {
-        ( $null, $var ) = split /--/, $form->{projectnumber};
-        $var = $dbh->quote($var);
-        $where .= " AND j.project_id = $var";
-
-        $query = qq|SELECT class_id = 3 FROM business_unit WHERE id = $var|;
-        my ($job) = $dbh->selectrow_array($query);
-        $form->{project} = ($job) ? "job" : "project";
-
-    }
-    if ( $form->{partnumber} ) {
-        ( $null, $var ) = split /--/, $form->{partnumber};
-        $var = $dbh->quote($var);
-        $where .= " AND j.parts_id = $var";
-
-        $query = qq|
-			SELECT inventory_accno_id
-			  FROM parts
-			 WHERE id = $var|;
-        my ($job) = $dbh->selectrow_array($query);
-        $form->{project} = ($job) ? "job" : "project";
-
-    }
-    if ( $form->{employee} ) {
-        ( $null, $var ) = split /--/, $form->{employee};
-        $var = $dbh->quote($var);
-        $where .= " AND j.person_id = (select id from person where entity_id = $var)";
-    }
-    if ( $form->{open} || $form->{closed} ) {
-        unless ( $form->{open} && $form->{closed} ) {
-            $where .= " AND j.qty != j.allocated" if $form->{open};
-            $where .= " AND j.qty = j.allocated"
-              if $form->{closed};
-        }
-    }
-
-    ( $form->{startdatefrom}, $form->{startdateto} ) =
-      $form->from_to( $form->{year}, $form->{month}, $form->{interval} )
-      if $form->{year} && $form->{month};
-
-    $where .= " AND j.checkedin >= " . $dbh->quote( $form->{startdatefrom} )
-      if $form->{startdatefrom};
-    $where .=
-      " AND j.checkedout < date " . $dbh->quote( $form->{startdateto} ) . " + 1"
-      if $form->{startdateto};
-
-    my %ordinal = (
-        id                 => 1,
-        description        => 2,
-        transdate          => 7,
-        partnumber         => 9,
-        projectnumber      => 10,
-        projectdescription => 11,
-    );
-
-    my @a = qw( transdate projectnumber );
-    my $sortorder = $form->sort_order( ..hidden.., \%ordinal );
-
-    my $dateformat = $myconfig->{dateformat};
-    $dateformat =~ s/yy$/yyyy/;
-    $dateformat =~ s/yyyyyy/yyyy/;
-
-    if ( $form->{project} eq 'job' ) {
-        if ( $form->{type} eq 'timecard' ) {
-            $where .= " 
-				AND pr.parts_id > 0
-				AND p.income_accno_id IS NULL";
-        }
-
-        if ( $form->{type} eq 'storescard' ) {
-            $where .= " 
-				AND pr.parts_id > 0
-				AND p.income_accno_id > 0";
-        }
-    }
-    if ( $form->{project} eq 'project' ) {
-        $where .= " AND pr.parts_id IS NULL";
-    }
-
-    $query = qq|
-		SELECT j.id, j.description, j.qty, j.allocated,
-		       to_char(j.checkedin, 'HH24:MI') AS checkedin,
-		       to_char(j.checkedout, 'HH24:MI') AS checkedout,
-		       to_char(j.checkedin, 'yyyymmdd') AS transdate,
-		       to_char(j.checkedin, ?) AS transdatea,
-		       to_char(j.checkedin, 'D') AS weekday,
-		       p.partnumber,
-		       pr.projectnumber, pr.description AS projectdescription,
-		       ee.employeenumber, e.name AS employee,
-		       to_char(j.checkedin, 'WW') AS workweek, pr.parts_id,
-		       j.sellprice
-		  FROM jcitems j
-                  JOIN person pn ON pn.id = j.person_id
-                  JOIN entity e ON pn.entity_id = e.id
-                  JOIN entity_employee ee ON ee.entity_id = e.id
-		  JOIN parts p ON (p.id = j.parts_id)
-		  JOIN business_unit pr ON (pr.id = j.project_id)
-		 WHERE $where
-		ORDER BY employee, employeenumber, $sortorder|;
-
-    $sth = $dbh->prepare($query);
-    $sth->execute($dateformat) || $form->dberror($query);
-
-    while ( $ref = $sth->fetchrow_hashref(NAME_lc) ) {
-        $ref->{project} = ( $ref->{parts_id} ) ? "job" : "project";
-        $ref->{transdate} = $ref->{transdatea};
-        delete $ref->{transdatea};
-        push @{ $form->{transactions} }, $ref;
-    }
-    $sth->finish;
-
-    $dbh->commit;
-
-}
-
-sub save {
-    my ( $self, $myconfig, $form ) = @_;
-
-    my $dbh = $form->{dbh};
-
-    my $query;
-    my $sth;
-
-    my ( $null, $project_id ) = split /--/, $form->{projectnumber};
-    for (qw(qty sellprice allocated noncharge)) {
-        $form->{$_} = $form->parse_amount( $myconfig, $form->{$_} );
-    }
-    my ($total, $nonbillable);
-
-    $nonbillable = $form->{noncharge} || 0;
-    $total = $form->{qty} + $nonbillable;
-
-    if ( $form->{id} ) {
-
-        # check if it was a job
-        $query = qq|
-			SELECT pr.class_id = 3, pr.production - pr.completed
-			  FROM business_unit pr
-			  JOIN jcitems j ON (j.project_id = pr.id)
-			 WHERE j.id = ?|;
-        $sth = $dbh->prepare($query);
-        $sth->execute( $form->{id} );
-        my ( $job_id, $qty ) = $sth->fetchrow_array();
-        $sth->finish;
-        if ( $job_id && $qty == 0 ) {
-            return -1;
-        }
-
-        # check if new one belongs to a job
-        if ($project_id) {
-            $query = qq|
-				SELECT pr.class_id = 3, 
-				       pr.production - pr.completed
-				  FROM business_unit pr
-				 WHERE pr.id = ?|;
-            $sth = $dbh->prepare($query);
-            $sth->execute($project_id);
-            my ( $job_id, $qty ) = $sth->fetchrow_array();
-
-            if ( $job_id && $qty == 0 ) {
-                $dbh->disconnect;
-                return -2;
-            }
-        }
-
-    }
-    else {
-        my $uid = localtime;
-        $uid .= "$$";
-
-        $query = qq|INSERT INTO jcitems 
-                           (description, person_id, total, non_billable) 
-                    SELECT ?, id, ?, ?
-                      FROM person WHERE entity_id = person__get_my_entity_id()|;
-        my $isth = $dbh->prepare($query) || $form->dberror($query);
-        $isth->execute($uid, $total, $nonbillable)|| $form->dberror($query);
-
-        $query = qq|SELECT id FROM jcitems WHERE description = '$uid'|;
-        ( $form->{id} ) = $dbh->selectrow_array($query);
-    }
-
-    for (qw(inhour inmin insec outhour outmin outsec)) {
-        $form->{$_} = substr( "00$form->{$_}", -2 );
-    }
-    for (qw(qty sellprice allocated)) {
-        $form->{$_} = $form->parse_amount( $myconfig, $form->{$_} );
-    }
-
-    my $checkedin  = "$form->{inhour}$form->{inmin}$form->{insec}";
-    my $checkedout = "$form->{outhour}$form->{outmin}$form->{outsec}";
-
-    my $outdate = $form->{transdate};
-    if ( $checkedout < $checkedin ) {
-        $outdate = $form->add_date( $myconfig, $form->{transdate}, 1, 'days' );
-    }
-
-    ( $null, $form->{employee_id} ) = split /--/, $form->{employee};
-    unless ( $form->{employee_id} ) {
-        ( $form->{employee}, $form->{employee_id} ) = $form->get_employee($dbh);
-    }
-
-    my $parts_id;
-    ( $null, $parts_id ) = split /--/, $form->{partnumber};
-
-    $query = qq|
-		UPDATE jcitems 
-		   SET project_id = ?,
-		       parts_id = ?,
-		       description = ?,
-		       qty = ?,
-		       allocated = ?,
-		       sellprice = ?,
-		       fxsellprice = ?,
-		       serialnumber = ?,
-		       checkedin = ?::timestamp,
-		       checkedout = ?::timestamp,
-		       person_id = (SELECT id FROM person 
-                                     WHERE entity_id = ?),
-		       notes = ?,
-                       total = ?,
-                       non_billable = ?
-		 WHERE id = ?|;
-    $sth = $dbh->prepare($query);
-    $sth->execute(
-        $project_id,
-        $parts_id,
-        $form->{description},
-        $form->{qty},
-        $form->{allocated},
-        $form->{sellprice},
-        $form->{sellprice},
-        $form->{serialnumber},
-        "$form->{transdate} $form->{inhour}:$form->{inmin}:" . $form->{insec},
-        "$outdate $form->{outhour}:$form->{outmin}:$form->{outsec}",
-        $form->{employee_id},
-        $form->{notes},
-        $total,
-        $nonbillable,
-        $form->{id}
-    ) || $form->dberror($query);
-
-    # save printed, queued
-    $form->save_status($dbh);
-
-    my %audittrail = (
-        tablename => 'jcitems',
-        reference => $form->{id},
-        formname  => $form->{type},
-        action    => 'saved',
-        id        => $form->{id}
-    );
-
-    $form->audittrail( $dbh, "", \%audittrail );
-
-    my $rc = $dbh->commit;
-
-    $rc;
-
-}
-
-1;
-

Modified: trunk/LedgerSMB/Scripts/import_csv.pm
===================================================================
--- trunk/LedgerSMB/Scripts/import_csv.pm	2012-12-09 09:32:23 UTC (rev 5329)
+++ trunk/LedgerSMB/Scripts/import_csv.pm	2012-12-09 09:48:59 UTC (rev 5330)
@@ -187,17 +187,16 @@
                $dbh->commit;
              },
  timecard => sub {
-               use LedgerSMB::JC;
+               use LedgerSMB::Timecard;
                my ($request, $entries) = @_;
                my $myconfig = {};
                for my $entry (@$entries) {
-                   my $jc = {dbh => $request->{dbh}};
                    my $counter = 0;
                    for my $col (@{$cols->{timecard}}){
                        $jc->{$col} = $entry->[$counter];
                        ++$counter;
                    }
-                   LedgerSMB::JC->save($myconfig, $jc);
+                   LedgerSMB::Timecard->new(%$jc)->save;
                }
              },
    inventory => sub {

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.