Index: openacs-4/packages/invoices/tcl/offer-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/tcl/offer-procs.tcl,v diff -u -N -r1.24 -r1.25 --- openacs-4/packages/invoices/tcl/offer-procs.tcl 1 Jun 2006 10:49:31 -0000 1.24 +++ openacs-4/packages/invoices/tcl/offer-procs.tcl 29 Jun 2006 14:46:45 -0000 1.25 @@ -35,16 +35,19 @@ set package_id [ad_conn package_id] } set folder_id [content::folder::get_folder_from_package -package_id $package_id] - + + # Always set the sequence outside the transaction + set item_id [db_nextval t_acs_object_id_seq] + set revision_id [db_nextval t_acs_object_id_seq] db_transaction { - set item_id [db_nextval acs_object_id_seq] if {[empty_string_p $name]} { set name "iv_offer_$item_id" } set item_id [content::item::new -parent_id $folder_id -content_type {iv_offer} -name $name -package_id $package_id -item_id $item_id] set new_id [content::revision::new \ -item_id $item_id \ + -revision_id $revision_id \ -content_type {iv_offer} \ -title $title \ -description $description \ @@ -110,8 +113,10 @@ set status new } set old_rev_id [content::item::get_best_revision -item_id $offer_id] - set new_rev_id [content::revision::new \ + set new_rev_id [db_nextval t_acs_object_id_seq] + if {[catch {content::revision::new \ -item_id $offer_id \ + -revision_id $new_rev_id \ -content_type {iv_offer} \ -title $title \ -description $description \ @@ -130,7 +135,35 @@ [list status $status] \ [list vat_percent $vat_percent] \ [list vat $vat] \ - [list credit_percent $credit_percent] ] ] + [list credit_percent $credit_percent] ]} ] + } { + set new_rev_id [db_nextval t_acs_object_id_seq] + set new_rev_id [content::revision::new \ + -item_id $offer_id \ + -revision_id $new_rev_id \ + -content_type {iv_offer} \ + -title $title \ + -description $description \ + -attributes [list \ + [list comment $comment] \ + [list reservation $reservation] \ + [list offer_nr $offer_nr] \ + [list organization_id $organization_id] \ + [list amount_total $amount_total] \ + [list amount_sum $amount_sum] \ + [list currency $currency] \ + [list finish_date $finish_date] \ + [list date_comment $date_comment] \ + [list payment_days $payment_days] \ + [list show_sum_p $show_sum_p] \ + [list status $status] \ + [list vat_percent $vat_percent] \ + [list vat $vat] \ + [list credit_percent $credit_percent] + ] + ] + } + db_dml set_accepted_date {} return $new_rev_id }